diff options
author | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-01-26 14:02:52 +0000 |
---|---|---|
committer | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-01-26 14:02:52 +0000 |
commit | 3bde846f4cb169c2bbd3f1e219e3b722a225448e (patch) | |
tree | 16898d564f0dd45ba6e3663fc78961aee0fa8bba | |
parent | 42cb3c75c1d0df687150549d97a54c3984fea9c1 (diff) |
Merged revisions 171326 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r171326 | oej | 2009-01-26 14:44:40 +0100 (MÃ¥n, 26 Jan 2009) | 17 lines
Merged revisions 171264 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r171264 | oej | 2009-01-26 13:51:53 +0100 (MÃ¥n, 26 Jan 2009) | 9 lines
Don't retransmit 401 on REGISTER requests when alwaysauthreject=yes
(closes issue #14284)
Reported by: klaus3000
Patches:
patch_chan_sip_unreliable_1.4.23_14284.txt uploaded by klaus3000 (license 65)
Tested by: klaus3000
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@171327 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | channels/chan_sip.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 3485e8dd6..d97247afe 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1738,7 +1738,7 @@ static int transmit_response_with_sdp(struct sip_pvt *p, const char *msg, const static int transmit_response_with_unsupported(struct sip_pvt *p, const char *msg, const struct sip_request *req, const char *unsupported); static int transmit_response_with_auth(struct sip_pvt *p, const char *msg, const struct sip_request *req, const char *rand, enum xmittype reliable, const char *header, int stale); static int transmit_response_with_allow(struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable); -static void transmit_fake_auth_response(struct sip_pvt *p, struct sip_request *req, int reliable); +static void transmit_fake_auth_response(struct sip_pvt *p, struct sip_request *req, enum xmittype reliable); static int transmit_request(struct sip_pvt *p, int sipmethod, int inc, enum xmittype reliable, int newbranch); static int transmit_request_with_auth(struct sip_pvt *p, int sipmethod, int seqno, enum xmittype reliable, int newbranch); static int transmit_invite(struct sip_pvt *p, int sipmethod, int sdp, int init); @@ -10520,7 +10520,7 @@ static int cb_extensionstate(char *context, char* exten, int state, void *data) /*! \brief Send a fake 401 Unauthorized response when the administrator wants to hide the names of local users/peers from fishers */ -static void transmit_fake_auth_response(struct sip_pvt *p, struct sip_request *req, int reliable) +static void transmit_fake_auth_response(struct sip_pvt *p, struct sip_request *req, enum xmittype reliable) { ast_string_field_build(p, randdata, "%08lx", ast_random()); /* Create nonce for challenge */ transmit_response_with_auth(p, "401 Unauthorized", req, p->randdata, reliable, "WWW-Authenticate", 0); @@ -10709,7 +10709,7 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct sockaddr case AUTH_PEER_NOT_DYNAMIC: case AUTH_ACL_FAILED: if (global_alwaysauthreject) { - transmit_fake_auth_response(p, &p->initreq, 1); + transmit_fake_auth_response(p, &p->initreq, XMIT_UNRELIABLE); } else { /* URI not found */ if (res == AUTH_PEER_NOT_DYNAMIC) @@ -17002,7 +17002,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int if (res < 0) { /* Something failed in authentication */ if (res == AUTH_FAKE_AUTH) { ast_log(LOG_NOTICE, "Sending fake auth rejection for user %s\n", get_header(req, "From")); - transmit_fake_auth_response(p, req, 1); + transmit_fake_auth_response(p, req, XMIT_RELIABLE); } else { ast_log(LOG_NOTICE, "Failed to authenticate user %s\n", get_header(req, "From")); transmit_response_reliable(p, "403 Forbidden", req); @@ -18176,7 +18176,7 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req, if (res < 0) { if (res == AUTH_FAKE_AUTH) { ast_log(LOG_NOTICE, "Sending fake auth rejection for user %s\n", get_header(req, "From")); - transmit_fake_auth_response(p, req, 1); + transmit_fake_auth_response(p, req, XMIT_UNRELIABLE); } else { ast_log(LOG_NOTICE, "Failed to authenticate user %s for SUBSCRIBE\n", get_header(req, "From")); transmit_response_reliable(p, "403 Forbidden", req); |