summaryrefslogtreecommitdiff
path: root/net/ser/files/patch-modules::tm::t_reply.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ser/files/patch-modules::tm::t_reply.c')
-rw-r--r--net/ser/files/patch-modules::tm::t_reply.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/net/ser/files/patch-modules::tm::t_reply.c b/net/ser/files/patch-modules::tm::t_reply.c
new file mode 100644
index 000000000000..2404146609e9
--- /dev/null
+++ b/net/ser/files/patch-modules::tm::t_reply.c
@@ -0,0 +1,25 @@
+
+$FreeBSD$
+
+--- modules/tm/t_reply.c.orig
++++ modules/tm/t_reply.c
+@@ -686,6 +686,19 @@
+ /* if final response received at this branch, allow only INVITE 2xx */
+ if (Trans->uac[branch].last_received>=200
+ && !(inv_through && Trans->uac[branch].last_received<300)) {
++ /* don't report on retranmissions */
++ if (Trans->uac[branch].last_received==new_code) {
++ DBG("DEBUG: final reply retrasnmission\n");
++ goto discard;
++ }
++ /* if you FR-timed-out, faked a local 408 and 487 came, don't
++ * report on it either */
++ if (Trans->uac[branch].last_received==408 && new_code==487) {
++ DBG("DEBUG: 487 came for a timed-out branch\n");
++ goto discard;
++ }
++ /* this looks however how a very strange status rewrite attempt;
++ * report on it */
+ LOG(L_ERR, "ERROR: t_should_relay: status rewrite by UAS: "
+ "stored: %d, received: %d\n",
+ Trans->uac[branch].last_received, new_code );