From: Richard Mudgett Date: Thu, 2 Jun 2016 17:51:31 +0000 (-0500) Subject: pjsip_distributor.c: Ignore messages until fully booted. X-Git-Tag: certified/13.8-cert1-rc3~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f2a76c4292a91681846b40fb5b3b9f2f9f5a39c9;p=thirdparty%2Fasterisk.git pjsip_distributor.c: Ignore messages until fully booted. We should not be processing any incoming messages until we are fully booted. We may not have dialplan or other needed configuration loaded yet. ASTERISK-26089 #close Reported by: Scott Griepentrog ASTERISK-26088 Reported by: Richard Mudgett Change-Id: I584aefb4f34b885a8927e1f13a2c64babd606264 --- diff --git a/CHANGES b/CHANGES index d529e277cf..16827761d2 100644 --- a/CHANGES +++ b/CHANGES @@ -9,7 +9,7 @@ ============================================================================== ------------------------------------------------------------------------------ ---- Functionality changes from Asterisk 13.9.0 to Asterisk 13.10.0 ----------- +--- Functionality changes from Asterisk 13.8.0 to Asterisk 13.8-cert1 -------- ------------------------------------------------------------------------------ res_odbc @@ -18,16 +18,15 @@ res_odbc of concurrent connections to the database. This option defaults to 1 which returns the behavior to that of Asterisk 13.7 and prior. ------------------------------------------------------------------------------- ---- Functionality changes from Asterisk 13.8.0 to Asterisk 13.9.0 ------------ ------------------------------------------------------------------------------- - res_pjsip ------------------ * Added new global option (disable_multi_domain) to pjsip. Disabling Multi Domain can improve realtime performace by reducing number of database requsts. + * When starting Asterisk, received traffic will now be ignored until Asterisk + has loaded all modules and is fully booted. + ------------------------------------------------------------------------------ --- Functionality changes from Asterisk 13.7.0 to Asterisk 13.8.0 ------------ ------------------------------------------------------------------------------ diff --git a/res/res_pjsip/pjsip_distributor.c b/res/res_pjsip/pjsip_distributor.c index 834ca10d39..c7cfd8251b 100644 --- a/res/res_pjsip/pjsip_distributor.c +++ b/res/res_pjsip/pjsip_distributor.c @@ -254,11 +254,20 @@ static pjsip_module endpoint_mod = { static pj_bool_t distributor(pjsip_rx_data *rdata) { - pjsip_dialog *dlg = find_dialog(rdata); + pjsip_dialog *dlg; struct distributor_dialog_data *dist = NULL; struct ast_taskprocessor *serializer = NULL; pjsip_rx_data *clone; + if (!ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)) { + /* + * Ignore everything until we are fully booted. Let the + * peer retransmit messages until we are ready. + */ + return PJ_TRUE; + } + + dlg = find_dialog(rdata); if (dlg) { ast_debug(3, "Searching for serializer on dialog %s for %s\n", dlg->obj_name, rdata->msg_info.info);