mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
pbx_dundi: Run cleanup on failed load.
During failed startup of pbx_dundi no cleanup was performed. Add a call to unload_module before returning AST_MODULE_LOAD_DECLINE. ASTERISK-25677 #close Change-Id: I8ffa226fda4365ee7068ac1f464473f1a4ebbb29
This commit is contained in:
@@ -5014,30 +5014,31 @@ static int load_module(void)
|
||||
io = io_context_create();
|
||||
sched = ast_sched_context_create();
|
||||
|
||||
if (!io || !sched)
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
if (!io || !sched) {
|
||||
goto declined;
|
||||
}
|
||||
|
||||
if (set_config("dundi.conf", &sin, 0))
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
if (set_config("dundi.conf", &sin, 0)) {
|
||||
goto declined;
|
||||
}
|
||||
|
||||
netsocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
|
||||
|
||||
if (netsocket < 0) {
|
||||
ast_log(LOG_ERROR, "Unable to create network socket: %s\n", strerror(errno));
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
goto declined;
|
||||
}
|
||||
if (bind(netsocket, (struct sockaddr *) &sin, sizeof(sin))) {
|
||||
ast_log(LOG_ERROR, "Unable to bind to %s port %d: %s\n",
|
||||
ast_inet_ntoa(sin.sin_addr), ntohs(sin.sin_port), strerror(errno));
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
goto declined;
|
||||
}
|
||||
|
||||
ast_set_qos(netsocket, tos, 0, "DUNDi");
|
||||
|
||||
if (start_network_thread()) {
|
||||
ast_log(LOG_ERROR, "Unable to start network thread\n");
|
||||
close(netsocket);
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
goto declined;
|
||||
}
|
||||
|
||||
ast_cli_register_multiple(cli_dundi, ARRAY_LEN(cli_dundi));
|
||||
@@ -5050,6 +5051,10 @@ static int load_module(void)
|
||||
ast_verb(2, "DUNDi Ready and Listening on %s port %d\n", ast_inet_ntoa(sin.sin_addr), ntohs(sin.sin_port));
|
||||
|
||||
return AST_MODULE_LOAD_SUCCESS;
|
||||
|
||||
declined:
|
||||
unload_module();
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
}
|
||||
|
||||
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Distributed Universal Number Discovery (DUNDi)",
|
||||
|
Reference in New Issue
Block a user