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: 13.30.0-rc1~50^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa897059a517296d78b9da4bcaed475758b59c43;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 d72ee09f27..7fb0b6ee7c 100644 --- a/addons/cdr_mysql.c +++ b/addons/cdr_mysql.c @@ -389,6 +389,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) { @@ -413,7 +420,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; } }