diff --git a/src/cntlr.c b/src/cntlr.c index 81712db7186432b45b519e0cff5c24b8e725c375..b6477c44d0215055615766bb8b347fd268b20e53 100644 --- a/src/cntlr.c +++ b/src/cntlr.c @@ -1086,21 +1086,21 @@ struct sta *cntlr_add_sta(struct controller *c, uint8_t *macaddr, if (!s) return NULL; - INIT_LIST_HEAD(&s->umetriclist); - list_add(&s->list, &c->stalist); - timer_init(&s->bcn_metrics_timer, cntlr_bcn_metrics_parse); - timer_init(&s->btm_req_timer, cntlr_btm_req_timer_cb); - s->de_sta = cntlr_wifi_alloc_sta(c, macaddr); if (!s->de_sta) { free(s); return NULL; } + INIT_LIST_HEAD(&s->umetriclist); + list_add(&s->list, &c->stalist); allmac_insert(&c->mac_table, macaddr, is_bsta ? MAC_ENTRY_BSTA : MAC_ENTRY_STA, (void *)s); + timer_init(&s->bcn_metrics_timer, cntlr_bcn_metrics_parse); + timer_init(&s->btm_req_timer, cntlr_btm_req_timer_cb); + cntlr_init_sta_steer_counters(s); return s;