diff --git a/src/cntlr.c b/src/cntlr.c index 693b190c85c492aa75290b16d7944d7594eac007..d2d619aa5da59306ad6121c7fde837f2071c1aa7 100644 --- a/src/cntlr.c +++ b/src/cntlr.c @@ -2362,11 +2362,6 @@ void run_controller(void *opts) controller_subscribe_for_cmdus(c); - /* steer-control */ - cntlr_load_steer_modules(c); - if (!list_empty(&c->sclist)) - cntlr_assign_steer_module_default(c); - /* The counters in MultiAPSteeringSummaryStats are all reset on reboot. */ memset(&c->dlem.network.steer_summary, 0, sizeof(struct wifi_steer_summary)); cntlr_dbg(LOG_MISC, "current wifi_cntlr profile %d\n", c->cfg.map_profile); diff --git a/src/config.c b/src/config.c index 1a46adeef72f2110745386810d1743756da58e76..2d5f8d65ef9485b0bc117dfda37999ec4cde1d60 100644 --- a/src/config.c +++ b/src/config.c @@ -1894,7 +1894,11 @@ uint8_t cntlr_config_reload(struct controller_config *cfg) if (!strcmp(s->type, "controller")) { cntlr_config_get_base(cfg, s); } else if (!strcmp(s->type, "sta_steering")) { + struct controller *c = + container_of(cfg, struct controller, cfg); + cntlr_config_get_steer_params(cfg, s); + cntlr_load_steer_modules(c); } else if (!strcmp(s->type, "ap")) { cntlr_config_get_credentials(cfg, s); } else if (!strcmp(s->type, "node")) { diff --git a/src/steer_module.c b/src/steer_module.c index a87dff8753b8fb4c531ae3f39653ecbaec8252d6..ef8546fc5039574cad194dd98054ec56e4ab9aff 100644 --- a/src/steer_module.c +++ b/src/steer_module.c @@ -190,6 +190,9 @@ void cntlr_load_steer_modules(struct controller *c) if (!ret) list_add_tail(&sc->list, &c->sclist); } + + if (!list_empty(&c->sclist)) + cntlr_assign_steer_module_default(c); } void cntlr_unload_steer_modules(struct controller *c)