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
This commit is contained in:
Russell Bryant
2007-10-17 17:57:45 +00:00
parent faf4b212eb
commit ed426a7165

View File

@@ -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)