aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authordvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2010-09-20 21:34:15 +0000
committerdvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2010-09-20 21:34:15 +0000
commit1a91ea77272c46087f2e5777075d7afbc920b70b (patch)
tree87f91157a0581c847048bfbde7166ad1f96a0bf8 /channels
parentfdf9863cf53dee8ab28485be77e4fbbbe46da54a (diff)
Fixes issue with registrations not working properly with pedantic=yes.
(closes issue #18017) Reported by: schmidts Patches: issues_18017_v1.diff uploaded by dvossel (license 671) Tested by: schmidts git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.8@287645 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index eb5ae4e14..791babf9a 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -7236,8 +7236,10 @@ static enum match_req_res match_req_to_dialog(struct sip_pvt *sip_pvt_ptr, struc
return SIP_REQ_NOT_MATCH;
}
} else {
- /* Verify the fromtag of Request matches the tag they provided earlier. */
- if (strcmp(arg->fromtag, sip_pvt_ptr->theirtag)) {
+ /* Verify the fromtag of Request matches the tag they provided earlier.
+ * If this is a Request with authentication credentials, forget their old
+ * tag as it is not valid after the 401 or 407 response. */
+ if (!arg->authentication_present && strcmp(arg->fromtag, sip_pvt_ptr->theirtag)) {
/* their tag does not match the one was have stored for them */
return SIP_REQ_NOT_MATCH;
}