diff --git a/src/conf.c b/src/conf.c index 4e6521bf..72d3fe38 100644 --- a/src/conf.c +++ b/src/conf.c @@ -144,7 +144,16 @@ static int config__check_bridges(struct mosquitto__config *config); static int config__add_listener(struct mosquitto__config *config) { struct mosquitto__listener *listener; + int def_listener = -1; + if(config->default_listener){ + for(int i=0; ilistener_count; i++){ + if(&config->listeners[i] == config->default_listener){ + def_listener = i; + break; + } + } + } config->listener_count++; config->listeners = mosquitto__realloc(config->listeners, sizeof(struct mosquitto__listener)*(size_t)config->listener_count); if(!config->listeners){ @@ -158,6 +167,9 @@ static int config__add_listener(struct mosquitto__config *config) log__printf(NULL, MOSQ_LOG_ERR, "Error: Out of memory."); return MOSQ_ERR_NOMEM; } + if(def_listener != -1){ + config->default_listener = &config->listeners[def_listener]; + } return MOSQ_ERR_SUCCESS; }