aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-03-28 19:37:34 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-03-28 19:37:34 +0000
commitad3c5e1c18fbbaf40cea47038fefe4a5f7b414fc (patch)
treea3905ef7f67b38d653ba228115d8fe94a2340968 /channels/chan_sip.c
parentab1b16c4799a9df09efae447a3f5bd64144563c1 (diff)
Clear out received tag in 407/401's (bug #3885)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5292 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rwxr-xr-xchannels/chan_sip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index bf839df9e..023ecd4a0 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -7949,6 +7949,7 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
/* First we ACK */
transmit_request(p, SIP_ACK, seqno, 0, 0);
/* Then we AUTH */
+ p->theirtag[0]='\0'; /* forget their old tag, so we don't match tags when getting response */
if ((p->authtries > 1) || do_proxy_auth(p, req, "WWW-Authenticate", "Authorization", SIP_INVITE, 1)) {
ast_log(LOG_NOTICE, "Failed to authenticate on INVITE to '%s'\n", get_header(&p->initreq, "From"));
ast_set_flag(p, SIP_NEEDDESTROY);
@@ -7983,6 +7984,7 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
/* Then we AUTH */
/* But only if the packet wasn't marked as ignore in handle_request */
if(!ignore){
+ p->theirtag[0]='\0'; /* forget their old tag, so we don't match tags when getting response */
if ((p->authtries > 1) || do_proxy_auth(p, req, "Proxy-Authenticate", "Proxy-Authorization", SIP_INVITE, 1)) {
ast_log(LOG_NOTICE, "Failed to authenticate on INVITE to '%s'\n", get_header(&p->initreq, "From"));
ast_set_flag(p, SIP_NEEDDESTROY);