[Pkg-voip-commits] [SCM] reSIProcate branch, debian-wheezy, updated. debian/1.8.2-1-27-g8eb7b50
Daniel Pocock
daniel at pocock.com.au
Sun Mar 17 11:34:13 UTC 2013
The following commit has been merged in the debian-wheezy branch:
commit 8eb7b50ffded4759caf587680b3eb6d382d4d946
Author: Daniel Pocock <daniel at pocock.com.au>
Date: Sun Mar 17 12:34:03 2013 +0100
Discard repeated requests over reliable transport (Closes: #703232)
diff --git a/debian/changelog b/debian/changelog
index 839b86d..1a592b3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
resiprocate (1.8.5-2) unstable; urgency=low
* Remove proxy-auth headers after validating them (Closes: #697341)
+ * Discard repeated requests over reliable transport (Closes: #703232)
-- Daniel Pocock <daniel at pocock.com.au> Sun, 17 Mar 2013 12:30:47 +0100
diff --git a/debian/patches/0002-discard-repeated-requests-received-over-reliable-tra.patch b/debian/patches/0002-discard-repeated-requests-received-over-reliable-tra.patch
new file mode 100644
index 0000000..b107708
--- /dev/null
+++ b/debian/patches/0002-discard-repeated-requests-received-over-reliable-tra.patch
@@ -0,0 +1,37 @@
+From: Daniel Pocock <daniel at pocock.com.au>
+Date: Sun, 17 Mar 2013 12:28:31 +0100
+Subject: discard repeated requests received over reliable transports (closes:
+ #703232) (upstream: r9998, fixed in v1.8.7)
+
+---
+ resip/stack/TransactionState.cxx | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/resip/stack/TransactionState.cxx b/resip/stack/TransactionState.cxx
+index 868b4a3..deca715 100644
+--- a/resip/stack/TransactionState.cxx
++++ b/resip/stack/TransactionState.cxx
+@@ -699,6 +699,23 @@ TransactionState::process(TransactionController& controller,
+ }
+ break;
+ }
++
++ // .bwc. in private email 1 Feb 2013:
++ // According to the spec, there is no such thing as a reliable NIT
++ // retransmission; what we have just observed is a transaction id collision
++ // technically. Maybe a reliable NIT transaction collision needs special
++ // handling? It is probably a lot more common that this is a confused client,
++ // than a client that has innocently used the same tid as some other client,
++ // though. Maybe we should just ignore such requests?
++ if(sip->isExternal() && sip->isRequest() &&
++ method != ACK &&
++ state->mIsReliable)
++ {
++ InfoLog(<<"Someone sent us a request with a repeated transaction ID "
++ "over a reliable transport. Discarding the request.");
++ delete sip;
++ return;
++ }
+ }
+
+ if (state) // found transaction for sip msg
--
reSIProcate
More information about the Pkg-voip-commits
mailing list