diff --git a/src/cw/mod.c b/src/cw/mod.c index 5d91ca23..03f8e517 100644 --- a/src/cw/mod.c +++ b/src/cw/mod.c @@ -190,7 +190,10 @@ struct cw_Mod *cw_mod_load(const char *mod_name, cw_Cfg_t * global_cfg, int role } cw_dbg(DBG_MOD, "MOD: %s sucessfull loaded, calling init now.", filename); - mod->init(mod, global_cfg, role); + if (!mod->init(mod, global_cfg, role)){ + dlclose(handle); + mod=NULL; + } errX: free(filename); diff --git a/src/mod/capwap/mod_capwap_ac.c b/src/mod/capwap/mod_capwap_ac.c index 0becb410..877762f1 100644 --- a/src/mod/capwap/mod_capwap_ac.c +++ b/src/mod/capwap/mod_capwap_ac.c @@ -30,7 +30,7 @@ static int init(struct cw_Mod * mod, cw_Cfg_t * global_cfg, int role) } - return 0; + return 1; } diff --git a/src/mod/capwap80211/mod_capwap80211.c b/src/mod/capwap80211/mod_capwap80211.c index 2de9ccba..16247662 100644 --- a/src/mod/capwap80211/mod_capwap80211.c +++ b/src/mod/capwap80211/mod_capwap80211.c @@ -14,7 +14,7 @@ static int init() { cw_dbg(DBG_INFO, "Initialiazing mod_capwap80211 ..."); - return 0; + return 1; } diff --git a/src/mod/cisco/mod_cisco_ac.c b/src/mod/cisco/mod_cisco_ac.c index 59d58b46..818d92c4 100644 --- a/src/mod/cisco/mod_cisco_ac.c +++ b/src/mod/cisco/mod_cisco_ac.c @@ -117,11 +117,13 @@ static int init(struct cw_Mod *mod, cw_Cfg_t * global_cfg, int role) capwap_mod = cw_mod_load("capwap",global_cfg,role); if (capwap_mod == NULL){ cw_log(LOG_ERR, "CISCO: failed to load base module 'capwap"); + return 0; } capwap80211_mod = cw_mod_load("capwap80211", global_cfg,role); if (capwap_mod == NULL){ cw_log(LOG_ERR, "CISCO: failed to load base module 'capwap80211"); + return 0; } /*cisco_config = mbag_create();*/