From: Russell Bryant Date: Wed, 2 Jun 2010 19:56:14 +0000 (+0000) Subject: Add CLI command that blocks until Asterisk has fully booted. X-Git-Tag: 1.4.34-rc1~2^2~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4af1fbc81a1e75cd2ac303dd237cbf02ead98d4;p=thirdparty%2Fasterisk.git Add CLI command that blocks until Asterisk has fully booted. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@267183 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/cli.c b/main/cli.c index b928fde634..4cb0476647 100644 --- a/main/cli.c +++ b/main/cli.c @@ -138,6 +138,10 @@ static char group_show_channels_help[] = " Optional regular expression pattern is matched to group names for each\n" " channel.\n"; +static char core_wait_fullybooted_help[] = +"Usage: core waitfullybooted\n" +" Wait until Asterisk has fully booted.\n"; + static int handle_load_deprecated(int fd, int argc, char *argv[]) { if (argc != 2) @@ -1336,6 +1340,17 @@ static int group_show_channels(int fd, int argc, char *argv[]) #undef FORMAT_STRING } +static int handle_cli_wait_fullybooted(int fd, int argc, char *argv[]) +{ + while (!ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)) { + usleep(100); + } + + ast_cli(fd, "Asterisk has fully booted.\n"); + + return RESULT_SUCCESS; +} + static int handle_help(int fd, int argc, char *argv[]); static char * complete_help(const char *text, const char *word, int pos, int state) @@ -1500,6 +1515,10 @@ static struct ast_cli_entry cli_cli[] = { { { "soft", "hangup", NULL }, handle_softhangup, "Request a hangup on a given channel", softhangup_help, complete_ch_3 }, + + { { "core", "waitfullybooted", NULL }, + handle_cli_wait_fullybooted, "Display active channels with group(s)", + core_wait_fullybooted_help }, }; /*! \brief initialize the _full_cmd string in * each of the builtins. */