Skip to content

Commit 5a42e88

Browse files
author
Mika Leppänen
committed
Corrected PAE controller stop
1 parent ac2425c commit 5a42e88

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

source/6LoWPAN/ws/ws_pae_controller.c

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ static int8_t ws_pae_controller_nw_key_check_and_insert(protocol_interface_info_
9393
static int8_t ws_pae_controller_gak_from_gtk(uint8_t *gak, uint8_t *gtk, char *network_name);
9494
static void ws_pae_controller_nw_key_index_check_and_set(protocol_interface_info_entry_t *interface_ptr, uint8_t index);
9595
static int8_t ws_pae_controller_free_slot_find(nw_key_t *nw_key);
96+
static void ws_pae_controller_data_init(pae_controller_t *controller);
9697

9798
static NS_LIST_DEFINE(pae_controller_list, pae_controller_t, link);
9899

@@ -447,16 +448,26 @@ int8_t ws_pae_controller_init(protocol_interface_info_entry_t *interface_ptr)
447448
return -1;
448449
}
449450

450-
memset(controller->target_eui_64, 0, 8);
451-
memset(controller->br_eui_64, 0, 8);
452-
memset(controller->gtkhash, 0, 32);
453-
memset(controller->nw_key, 0, sizeof(controller->nw_key));
454-
controller->target_pan_id = 0xffff;
455451
controller->interface_ptr = interface_ptr;
456452
controller->auth_completed = NULL;
457453
controller->nw_key_insert = NULL;
458454
controller->nw_send_key_index_set = NULL;
459455
controller->pan_ver_increment = NULL;
456+
457+
ws_pae_controller_data_init(controller);
458+
459+
ns_list_add_to_end(&pae_controller_list, controller);
460+
461+
return 0;
462+
}
463+
464+
static void ws_pae_controller_data_init(pae_controller_t *controller)
465+
{
466+
memset(controller->target_eui_64, 0, 8);
467+
memset(controller->br_eui_64, 0, 8);
468+
memset(controller->gtkhash, 0, 32);
469+
memset(controller->nw_key, 0, sizeof(controller->nw_key));
470+
controller->target_pan_id = 0xffff;
460471
controller->pae_delete = NULL;
461472
controller->pae_fast_timer = NULL;
462473
controller->pae_slow_timer = NULL;
@@ -475,10 +486,6 @@ int8_t ws_pae_controller_init(protocol_interface_info_entry_t *interface_ptr)
475486
sec_prot_keys_gtks_init(&controller->next_gtks);
476487
sec_prot_certs_init(&controller->certs);
477488
ws_pae_timers_settings_init(&controller->timer_settings);
478-
479-
ns_list_add_to_end(&pae_controller_list, controller);
480-
481-
return 0;
482489
}
483490

484491
int8_t ws_pae_controller_supp_init(protocol_interface_info_entry_t *interface_ptr)
@@ -536,6 +543,12 @@ int8_t ws_pae_controller_stop(protocol_interface_info_entry_t *interface_ptr)
536543
controller->pae_delete(interface_ptr);
537544
}
538545

546+
// Free data
547+
sec_prot_certs_delete(&controller->certs);
548+
549+
// Init controller data
550+
ws_pae_controller_data_init(controller);
551+
539552
return 0;
540553
}
541554

@@ -553,9 +566,6 @@ int8_t ws_pae_controller_delete(protocol_interface_info_entry_t *interface_ptr)
553566
}
554567

555568
ns_list_remove(&pae_controller_list, controller);
556-
557-
sec_prot_certs_delete(&controller->certs);
558-
559569
ns_dyn_mem_free(controller);
560570

561571
return 0;

0 commit comments

Comments
 (0)