From: Russell Bryant Date: Wed, 17 Oct 2007 17:57:45 +0000 (+0000) Subject: If Asterisk is in the middle of shutting down, respond to OPTIONS X-Git-Tag: 1.4.14~130 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ed426a71654ba8e198306099ab18357442336aa6;p=thirdparty%2Fasterisk.git If Asterisk is in the middle of shutting down, respond to OPTIONS with 503 Unavailable. (closes issue #10994) Reported by: eserra Patches: sip-options-503.patch uploaded by eserra (license 45) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@86149 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 6131cd4c9d..5c32d86df0 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -13202,13 +13202,19 @@ static int handle_request_options(struct sip_pvt *p, struct sip_request *req) res = get_destination(p, req); build_contact(p); + /* XXX Should we authenticate OPTIONS? XXX */ + if (ast_strlen_zero(p->context)) ast_string_field_set(p, context, default_context); - if (res < 0) + + if (ast_shutting_down()) + transmit_response_with_allow(p, "503 Unavailable", req, 0); + else if (res < 0) transmit_response_with_allow(p, "404 Not Found", req, 0); else transmit_response_with_allow(p, "200 OK", req, 0); + /* Destroy if this OPTIONS was the opening request, but not if it's in the middle of a normal call flow. */ if (!p->lastinvite)