[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