]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Add fsctl shutdown_check to see if we're currently shutting down
authorMathieu Rene <mrene@avgs.ca>
Wed, 30 Jun 2010 03:00:24 +0000 (23:00 -0400)
committerMathieu Rene <mrene@avgs.ca>
Wed, 30 Jun 2010 03:03:10 +0000 (23:03 -0400)
src/include/switch_types.h
src/mod/applications/mod_commands/mod_commands.c
src/switch_core.c

index e65b3b78ce9bc6b1075d4cc6522acbac60480626..d18f6ecb93e0254ff8220e06156cfb497b0caa92 100644 (file)
@@ -1539,7 +1539,8 @@ typedef enum {
        SCSC_SAVE_HISTORY,
        SCSC_CRASH,
        SCSC_MIN_IDLE_CPU,
-       SCSC_VERBOSE_EVENTS
+       SCSC_VERBOSE_EVENTS,
+       SCSC_SHUTDOWN_CHECK
 } switch_session_ctl_t;
 
 typedef enum {
index 8c83dfc86f9ee4fb527128b87a091404d1c00f97..9e0066191ceb122867bab299263d0a8747ff2b7c 100644 (file)
@@ -1563,6 +1563,9 @@ SWITCH_STANDARD_API(ctl_function)
                } else if (!strcasecmp(argv[0], "save_history")) {
                        switch_core_session_ctl(SCSC_SAVE_HISTORY, NULL);
                        stream->write_function(stream, "+OK\n");
+               } else if (!strcasecmp(argv[0], "shutdown_check")) {
+                       switch_core_session_ctl(SCSC_SHUTDOWN_CHECK, &arg);
+                       stream->write_function(stream, arg ? "true" : "false");
                } else if (!strcasecmp(argv[0], "shutdown")) {
                        switch_session_ctl_t command = SCSC_SHUTDOWN;
                        int x = 0;
index 37dabbc6e917701524d35b689368ce4674f33b70..d48cd46dfca7c77673ce06f4f51c43d316ed0116 100644 (file)
@@ -1772,6 +1772,9 @@ SWITCH_DECLARE(int32_t) switch_core_session_ctl(switch_session_ctl_t cmd, void *
                        }
                }
                break;
+       case SCSC_SHUTDOWN_CHECK:
+               newintval = !!switch_test_flag((&runtime), SCF_SHUTDOWN_REQUESTED);
+               break;
        case SCSC_SHUTDOWN:
 
 #ifdef _MSC_VER