Diff
Modified: freeswitch/trunk/src/include/switch_core.h (15981 => 15982)
--- freeswitch/trunk/src/include/switch_core.h 2009-12-16 22:20:22 UTC (rev 15981)
+++ freeswitch/trunk/src/include/switch_core.h 2009-12-17 00:03:17 UTC (rev 15982)
@@ -2044,6 +2044,7 @@
SWITCH_DECLARE(switch_status_t) switch_cache_db_persistant_execute_trans(switch_cache_db_handle_t *dbh, char *sql, uint32_t retries);
SWITCH_DECLARE(void) switch_cache_db_detach(void);
SWITCH_DECLARE(uint32_t) switch_core_debug_level(void);
+SWITCH_DECLARE(void) switch_cache_db_flush_handles(void);
SWITCH_END_EXTERN_C
#endif
Modified: freeswitch/trunk/src/include/switch_types.h (15981 => 15982)
--- freeswitch/trunk/src/include/switch_types.h 2009-12-16 22:20:22 UTC (rev 15981)
+++ freeswitch/trunk/src/include/switch_types.h 2009-12-17 00:03:17 UTC (rev 15982)
@@ -1431,7 +1431,8 @@
SCSC_SHUTDOWN_ASAP,
SCSC_CANCEL_SHUTDOWN,
SCSC_SEND_SIGHUP,
- SCSC_DEBUG_LEVEL
+ SCSC_DEBUG_LEVEL,
+ SCSC_FLUSH_DB_HANDLES
} switch_session_ctl_t;
typedef enum {
Modified: freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c (15981 => 15982)
--- freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c 2009-12-16 22:20:22 UTC (rev 15981)
+++ freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c 2009-12-17 00:03:17 UTC (rev 15982)
@@ -1349,6 +1349,9 @@
arg = 1;
switch_core_session_ctl(SCSC_HUPALL, &arg);
stream->write_function(stream, "+OK\n");
+ } else if (!strcasecmp(argv[0], "flush_db_handles")) {
+ switch_core_session_ctl(SCSC_FLUSH_DB_HANDLES, NULL);
+ stream->write_function(stream, "+OK\n");
} else if (!strcasecmp(argv[0], "pause")) {
arg = 1;
switch_core_session_ctl(SCSC_PAUSE_INBOUND, &arg);
@@ -3944,6 +3947,7 @@
switch_console_set_complete("add fsctl shutdown restart elegant");
switch_console_set_complete("add fsctl sps");
switch_console_set_complete("add fsctl sync_clock");
+ switch_console_set_complete("add fsctl flush_db_handles");
switch_console_set_complete("add nat_map reinit");
switch_console_set_complete("add nat_map republish");
switch_console_set_complete("add nat_map status");
Modified: freeswitch/trunk/src/switch_core.c (15981 => 15982)
--- freeswitch/trunk/src/switch_core.c 2009-12-16 22:20:22 UTC (rev 15981)
+++ freeswitch/trunk/src/switch_core.c 2009-12-17 00:03:17 UTC (rev 15982)
@@ -1568,6 +1568,9 @@
}
switch (cmd) {
+ case SCSC_FLUSH_DB_HANDLES:
+ switch_cache_db_flush_handles();
+ break;
case SCSC_SEND_SIGHUP:
handle_SIGHUP(1);
break;
Modified: freeswitch/trunk/src/switch_core_sqldb.c (15981 => 15982)
--- freeswitch/trunk/src/switch_core_sqldb.c 2009-12-16 22:20:22 UTC (rev 15981)
+++ freeswitch/trunk/src/switch_core_sqldb.c 2009-12-17 00:03:17 UTC (rev 15982)
@@ -144,6 +144,13 @@
}
+SWITCH_DECLARE(void) switch_cache_db_flush_handles(void)
+{
+ sql_close(switch_epoch_time_now(NULL) + SQL_CACHE_TIMEOUT + 1);
+}
+
+
+
SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t **dbh)
{
if (dbh && *dbh) {