Skip to content
Snippets Groups Projects
Commit 3226c29c authored by Mark Michelson's avatar Mark Michelson
Browse files

Merged revisions 142218 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r142218 | mmichelson | 2008-09-09 14:15:28 -0500 (Tue, 09 Sep 2008) | 14 lines

Make sure that the branch sent in CANCEL requests
matches the branch of the INVITE it is cancelling.

(closes issue #13381)
Reported by: atca_pres
Patches:
      13381v2.patch uploaded by putnopvut (license 60)
Tested by: atca_pres

(closes issue #13198)
Reported by: rickead2000
Tested by: rickead2000


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142219 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 75e95cb2
No related branches found
No related tags found
No related merge requests found
......@@ -1316,6 +1316,7 @@ struct sip_pvt {
int authtries; /*!< Times we've tried to authenticate */
int expiry; /*!< How long we take to expire */
long branch; /*!< The branch identifier of this session */
long invite_branch; /*!< The branch used when we sent the initial INVITE */
char tag[11]; /*!< Our tag for this session */
int sessionid; /*!< SDP Session ID */
int sessionversion; /*!< SDP Session Version */
......@@ -7715,7 +7716,10 @@ static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, in
seqno = p->ocseq;
}
if (newbranch) {
if (sipmethod == SIP_CANCEL) {
p->branch = p->invite_branch;
build_via(p);
} else if (newbranch) {
p->branch ^= ast_random();
build_via(p);
}
......@@ -9088,6 +9092,7 @@ static int transmit_invite(struct sip_pvt *p, int sipmethod, int sdp, int init)
req.method = sipmethod;
if (init) {/* Bump branch even on initial requests */
p->branch ^= ast_random();
p->invite_branch = p->branch;
build_via(p);
}
if (init > 1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment