Clear out received tag in 407/401's (bug #3885)
authorMark Spencer <markster@digium.com>
Mon, 28 Mar 2005 19:37:34 +0000 (19:37 +0000)
committerMark Spencer <markster@digium.com>
Mon, 28 Mar 2005 19:37:34 +0000 (19:37 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5292 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index bf839df..023ecd4 100755 (executable)
@@ -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);