Fix missing ast_destroy's in PGSQL (bug #2944)
authorMark Spencer <markster@digium.com>
Wed, 1 Dec 2004 05:27:18 +0000 (05:27 +0000)
committerMark Spencer <markster@digium.com>
Wed, 1 Dec 2004 05:27:18 +0000 (05:27 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4365 65c4cc65-6c06-0410-ace0-fbb531ad65f3

cdr/cdr_pgsql.c

index ccec5f9..f6af7ff 100755 (executable)
@@ -180,20 +180,13 @@ static int my_unload_module(void)
        return 0;
 }
 
-static int my_load_module(void)
+static int process_my_load_module(struct ast_config *cfg)
 {
        int res;
-       struct ast_config *cfg;
        struct ast_variable *var;
         char *pgerror;
        char *tmp;
 
-       cfg = ast_load(config);
-       if (!cfg) {
-               ast_log(LOG_WARNING, "Unable to load config for PostgreSQL CDR's: %s\n", config);
-               return 0;
-       }
-       
        var = ast_variable_browse(cfg, "global");
        if (!var) {
                /* nothing configured */
@@ -280,8 +273,6 @@ static int my_load_module(void)
                pgdbport = "5432";
        }
 
-       ast_destroy(cfg);
-
        ast_log(LOG_DEBUG,"cdr_pgsql: got hostname of %s\n",pghostname);
        ast_log(LOG_DEBUG,"cdr_pgsql: got port of %s\n",pgdbport);
        if (pgdbsock)
@@ -308,6 +299,20 @@ static int my_load_module(void)
        return res;
 }
 
+static int my_load_module(void)
+{
+       struct ast_config *cfg;
+       int res;
+       cfg = ast_load(config);
+       if (!cfg) {
+               ast_log(LOG_WARNING, "Unable to load config for PostgreSQL CDR's: %s\n", config);
+               return 0;
+       }
+       res = process_my_load_module(cfg);
+       ast_destroy(cfg);
+       return res;
+}
+
 int load_module(void)
 {
        return my_load_module();