]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add auto-clear-sql param to core
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 24 Aug 2011 18:36:13 +0000 (13:36 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 24 Aug 2011 18:36:19 +0000 (13:36 -0500)
src/include/switch_types.h
src/switch_core.c
src/switch_core_db.c
src/switch_core_sqldb.c

index dd36b7f68014c7a5bdb701328b750bdde664cf1a..2e3fd3982c814531b3aa2f3857f0579c1a904459 100644 (file)
@@ -276,7 +276,8 @@ typedef enum {
        SCF_USE_WIN32_MONOTONIC = (1 << 12),
        SCF_AUTO_SCHEMAS = (1 << 13),
        SCF_MINIMAL = (1 << 14),
-       SCF_USE_NAT_MAPPING = (1 << 15)
+       SCF_USE_NAT_MAPPING = (1 << 15),
+       SCF_CLEAR_SQL = (1 << 16)
 } switch_core_flag_enum_t;
 typedef uint32_t switch_core_flag_t;
 
index 12850ce99853f237b9400a5e0b92f4bb5bad9592..0b193ba5fa9f3d3aafb68c14e28853c3cb427d35 100644 (file)
@@ -1358,6 +1358,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
        runtime.dummy_cng_frame.buflen = sizeof(runtime.dummy_data);
        switch_set_flag((&runtime.dummy_cng_frame), SFF_CNG);
        switch_set_flag((&runtime), SCF_AUTO_SCHEMAS);
+       switch_set_flag((&runtime), SCF_CLEAR_SQL);
 
        switch_set_flag((&runtime), SCF_NO_NEW_SESSIONS);
        runtime.hard_log_level = SWITCH_LOG_DEBUG;
@@ -1675,6 +1676,12 @@ static void switch_load_core_config(const char *file)
                                        } else {
                                                switch_clear_flag((&runtime), SCF_AUTO_SCHEMAS);
                                        }
+                               } else if (!strcasecmp(var, "auto-clear-sql")) {
+                                       if (switch_true(val)) {
+                                               switch_set_flag((&runtime), SCF_CLEAR_SQL);
+                                       } else {
+                                               switch_clear_flag((&runtime), SCF_CLEAR_SQL);
+                                       }
                                } else if (!strcasecmp(var, "enable-early-hangup") && switch_true(val)) {
                                        switch_set_flag((&runtime), SCF_EARLY_HANGUP);
                                } else if (!strcasecmp(var, "colorize-console") && switch_true(val)) {
index 475bcfd6496b930321ca43f050e30685d6b6ff16..3c20b0f36828b424b55c8a009c2c893ad9fb8c36 100644 (file)
@@ -214,6 +214,10 @@ SWITCH_DECLARE(void) switch_core_db_test_reactive(switch_core_db_t *db, char *te
 {
        char *errmsg;
 
+       if (!switch_test_flag((&runtime), SCF_CLEAR_SQL)) {
+               return;
+       }
+
        if (!switch_test_flag((&runtime), SCF_AUTO_SCHEMAS)) {
                switch_core_db_exec(db, test_sql, NULL, NULL, NULL);
                return;
index 798e7c288fdafb5f9155101b8624397c3d63090d..665b496c01226289e406c24de576a346c10daa21 100644 (file)
@@ -852,6 +852,10 @@ SWITCH_DECLARE(switch_bool_t) switch_cache_db_test_reactive(switch_cache_db_hand
        switch_bool_t r = SWITCH_TRUE;
        switch_mutex_t *io_mutex = dbh->io_mutex;
 
+       if (!switch_test_flag((&runtime), SCF_CLEAR_SQL)) {
+               return SWITCH_TRUE;
+       }
+
        if (!switch_test_flag((&runtime), SCF_AUTO_SCHEMAS)) {
                switch_cache_db_execute_sql(dbh, (char *)test_sql, NULL);
                return SWITCH_TRUE;
@@ -1894,7 +1898,7 @@ switch_status_t switch_core_sqldb_start(switch_memory_pool_t *pool, switch_bool_
 
        switch (dbh->type) {
        case SCDB_TYPE_ODBC:
-               {
+               if (switch_test_flag((&runtime), SCF_CLEAR_SQL)) {
                        char sql[512] = "";
                        char *tables[] = { "channels", "calls", "interfaces", "tasks", NULL };
                        int i;