From b6fc1a5f304798401808f21ecaf1e7a8a4a5e6f8 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 27 Jun 2011 10:09:15 -0500 Subject: [PATCH] FS-3372 --resolve --- src/include/switch_types.h | 4 +++- src/mod/applications/mod_commands/mod_commands.c | 9 +++++++++ src/switch_core.c | 6 ++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/include/switch_types.h b/src/include/switch_types.h index e84fb1082a..f4e589af2a 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1621,7 +1621,9 @@ typedef enum { SCSC_CRASH, SCSC_MIN_IDLE_CPU, SCSC_VERBOSE_EVENTS, - SCSC_SHUTDOWN_CHECK + SCSC_SHUTDOWN_CHECK, + SCSC_PAUSE_CHECK, + SCSC_READY_CHECK } switch_session_ctl_t; typedef enum { diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index 40fe306d68..31d45d2881 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -1754,6 +1754,7 @@ SWITCH_STANDARD_API(status_function) duration.sec, duration.sec == 1 ? "" : "s", duration.ms, duration.ms == 1 ? "" : "s", duration.mms, duration.mms == 1 ? "" : "s"); + stream->write_function(stream, "FreeSWITCH is %s\n", switch_core_ready() ? "ready" : "not ready"); stream->write_function(stream, "%" SWITCH_SIZE_T_FMT " session(s) since startup\n", switch_core_session_id() - 1); switch_core_session_ctl(SCSC_LAST_SPS, &last_sps); switch_core_session_ctl(SCSC_SPS, &sps); @@ -1833,6 +1834,12 @@ 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], "pause_check")) { + switch_core_session_ctl(SCSC_PAUSE_CHECK, &arg); + stream->write_function(stream, arg ? "true" : "false"); + } else if (!strcasecmp(argv[0], "ready_check")) { + switch_core_session_ctl(SCSC_READY_CHECK, &arg); + stream->write_function(stream, arg ? "true" : "false"); } else if (!strcasecmp(argv[0], "shutdown_check")) { switch_core_session_ctl(SCSC_SHUTDOWN_CHECK, &arg); stream->write_function(stream, arg ? "true" : "false"); @@ -5319,6 +5326,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load) switch_console_set_complete("add fsctl crash"); switch_console_set_complete("add fsctl verbose_events"); switch_console_set_complete("add fsctl save_history"); + switch_console_set_complete("add fsctl pause_check"); + switch_console_set_complete("add fsctl ready_check"); switch_console_set_complete("add fsctl shutdown_check"); switch_console_set_complete("add fsctl shutdown"); switch_console_set_complete("add fsctl shutdown asap"); diff --git a/src/switch_core.c b/src/switch_core.c index a770d8cf93..721d53cfef 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -2031,6 +2031,12 @@ SWITCH_DECLARE(int32_t) switch_core_session_ctl(switch_session_ctl_t cmd, void * } } break; + case SCSC_PAUSE_CHECK: + newintval = !!switch_test_flag((&runtime), SCF_NO_NEW_SESSIONS); + break; + case SCSC_READY_CHECK: + newintval = switch_core_ready(); + break; case SCSC_SHUTDOWN_CHECK: newintval = !!switch_test_flag((&runtime), SCF_SHUTDOWN_REQUESTED); break;