From: Sean Bright Date: Fri, 4 Oct 2019 20:31:22 +0000 (-0400) Subject: cdr_mysql: Don't clean up on unload unless we can unregister from CDRs X-Git-Tag: 17.1.0-rc1~54^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1dc3451a3464bdc52d03344535dd7ac7751777a2;p=thirdparty%2Fasterisk.git cdr_mysql: Don't clean up on unload unless we can unregister from CDRs ASTERISK-28566 #close Change-Id: I6daa4e5128e9406d04d3aed670c3bae98d38d40c --- diff --git a/addons/cdr_mysql.c b/addons/cdr_mysql.c index 61d5d5c3ac..3f67dd5ca7 100644 --- a/addons/cdr_mysql.c +++ b/addons/cdr_mysql.c @@ -382,6 +382,13 @@ static int my_unload_module(int reload) { struct column *entry; + if (!reload) { + if (ast_cdr_unregister(name)) { + /* If we can't unregister the backend, we can't unload the module */ + return -1; + } + } + ast_cli_unregister_multiple(cdr_mysql_status_cli, sizeof(cdr_mysql_status_cli) / sizeof(struct ast_cli_entry)); if (connected) { @@ -406,7 +413,8 @@ static int my_unload_module(int reload) if (reload) { return ast_cdr_backend_suspend(name); } else { - return ast_cdr_unregister(name); + /* We unregistered earlier */ + return 0; } }