From 0c7add2a03853889c326ba56c1cde3025b23722e Mon Sep 17 00:00:00 2001 From: twilson Date: Mon, 24 May 2010 22:21:58 +0000 Subject: Merge the rest of the FullyBooted patch git-svn-id: http://svn.digium.com/svn/asterisk/trunk@265467 f38db490-d61c-443f-a65b-d21fe96a405b --- doc/manager_1_1.txt | 16 ++++++++++++++++ main/asterisk.c | 1 + main/manager.c | 3 +++ 3 files changed, 20 insertions(+) diff --git a/doc/manager_1_1.txt b/doc/manager_1_1.txt index a9b47def5..30ba876ca 100644 --- a/doc/manager_1_1.txt +++ b/doc/manager_1_1.txt @@ -314,6 +314,22 @@ Changes to manager version 1.1: * NEW EVENTS ------------ +- Event: FullyBooted + Modules: loader.c + Purpose: + It is handy to have a single event notification for when all Asterisk + modules have been loaded--especially for situations like running + automated tests. This event will fire 1) immediately upon all modules + loading or 2) upon connection to the AMI interface if the modules have + already finished loading before the connection was made. This ensures + that a user will never miss getting a FullyBooted event. In vary rare + circumstances, it might be possible to get two copies of the message + if the AMI connection is made right as the modules finish loading. + Example: + Event: FullyBooted + Privilege: system,all + Status: Fully Booted + - Event: Transfer Modules: res_features, chan_sip Purpose: diff --git a/main/asterisk.c b/main/asterisk.c index fd29a6f64..a9844de96 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -3723,6 +3723,7 @@ int main(int argc, char *argv[]) sig_alert_pipe[0] = sig_alert_pipe[1] = -1; ast_set_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED); + manager_event(EVENT_FLAG_SYSTEM, "FullyBooted", "Status: Fully Booted\r\n"); ast_process_pending_reloads(); diff --git a/main/manager.c b/main/manager.c index 297e94f5f..f23cec8a2 100644 --- a/main/manager.c +++ b/main/manager.c @@ -2740,6 +2740,9 @@ static int action_login(struct mansession *s, const struct message *m) ast_verb(2, "%sManager '%s' logged on from %s\n", (s->session->managerid ? "HTTP " : ""), s->session->username, ast_inet_ntoa(s->session->sin.sin_addr)); } astman_send_ack(s, m, "Authentication accepted"); + if (ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)) { + manager_event(EVENT_FLAG_SYSTEM, "FullyBooted", "Status: Fully Booted\r\n"); + } return 0; } -- cgit v1.2.3