]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
cdr_mysql: Don't clean up on unload unless we can unregister from CDRs
authorSean Bright <sean.bright@gmail.com>
Fri, 4 Oct 2019 20:31:22 +0000 (16:31 -0400)
committerSean Bright <sean.bright@gmail.com>
Fri, 4 Oct 2019 20:59:33 +0000 (16:59 -0400)
ASTERISK-28566 #close

Change-Id: I6daa4e5128e9406d04d3aed670c3bae98d38d40c

addons/cdr_mysql.c

index d72ee09f27884b8d1bb4449007d7406584747332..7fb0b6ee7c0fbb16996c11de018689b0027771bd 100644 (file)
@@ -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;
        }
 }