[Pkg-voip-commits] r10082 - in /kamailio/trunk/debian: ./ patches/ patches/upstream/

maniac-guest at alioth.debian.org maniac-guest at alioth.debian.org
Wed Jan 23 13:34:54 UTC 2013


Author: maniac-guest
Date: Wed Jan 23 13:34:53 2013
New Revision: 10082

URL: http://svn.debian.org/wsvn/pkg-voip/?sc=1&rev=10082
Log:
Upstream fixes

Added:
    kamailio/trunk/debian/patches/upstream/0002-pv-k-Remove-read-only-empty-strings-that-might-be-at.patch
    kamailio/trunk/debian/patches/upstream/0003-dialog-fix-bug-when-detect_spirals-enabled.patch
    kamailio/trunk/debian/patches/upstream/0005-dialog-fix-for-is_in_profile.patch
Modified:
    kamailio/trunk/debian/changelog
    kamailio/trunk/debian/patches/series

Modified: kamailio/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-voip/kamailio/trunk/debian/changelog?rev=10082&op=diff
==============================================================================
--- kamailio/trunk/debian/changelog (original)
+++ kamailio/trunk/debian/changelog Wed Jan 23 13:34:53 2013
@@ -7,6 +7,7 @@
       It's now included in kamailio-xml-modules.
   * debian/patches/upstream:
     + removed upstream fixes for the previous release.
+    + added upstream fixes
   * debian/patches:
     + removed plumb_md5.patch and plumb_md5_fixes.patch
       merged upstream ( Thanks miconda )
@@ -16,7 +17,7 @@
     + remove call to dpkg-buildflags
     + do not apply hardening_flags.patch
 
- -- Victor Seva <linuxmaniac at torreviejawireless.org>  Thu, 10 Jan 2013 10:08:53 +0100
+ -- Victor Seva <linuxmaniac at torreviejawireless.org>  Wed, 23 Jan 2013 14:33:41 +0100
 
 kamailio (3.3.0-1) unstable; urgency=low
 

Modified: kamailio/trunk/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-voip/kamailio/trunk/debian/patches/series?rev=10082&op=diff
==============================================================================
--- kamailio/trunk/debian/patches/series (original)
+++ kamailio/trunk/debian/patches/series Wed Jan 23 13:34:53 2013
@@ -1,4 +1,7 @@
 upstream/0001-dialog-fixed-ka_timer-linking.patch
+upstream/0002-pv-k-Remove-read-only-empty-strings-that-might-be-at.patch
+upstream/0003-dialog-fix-bug-when-detect_spirals-enabled.patch
+upstream/0005-dialog-fix-for-is_in_profile.patch
 no_lib64_on_64_bits.patch
 no_INSTALL_file.patch
 fix_export.patch

Added: kamailio/trunk/debian/patches/upstream/0002-pv-k-Remove-read-only-empty-strings-that-might-be-at.patch
URL: http://svn.debian.org/wsvn/pkg-voip/kamailio/trunk/debian/patches/upstream/0002-pv-k-Remove-read-only-empty-strings-that-might-be-at.patch?rev=10082&op=file
==============================================================================
--- kamailio/trunk/debian/patches/upstream/0002-pv-k-Remove-read-only-empty-strings-that-might-be-at.patch (added)
+++ kamailio/trunk/debian/patches/upstream/0002-pv-k-Remove-read-only-empty-strings-that-might-be-at.patch Wed Jan 23 13:34:53 2013
@@ -1,0 +1,93 @@
+From a650507c5e9c7abb1ebdf8f60768a9fbdd23c189 Mon Sep 17 00:00:00 2001
+From: Richard Fuchs <rfuchs at sipwise.com>
+Date: Wed, 9 Jan 2013 12:34:27 -0500
+Subject: [PATCH] pv(k): Remove read-only empty strings that might be
+ attempted to be written to
+
+---
+ modules_k/pv/pv_core.c  |    5 +++--
+ modules_k/pv/pv_trans.c |   17 ++++++++---------
+ 2 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/modules_k/pv/pv_core.c b/modules_k/pv/pv_core.c
+index 370ec1a..9a98608 100644
+--- a/modules_k/pv/pv_core.c
++++ b/modules_k/pv/pv_core.c
+@@ -59,6 +59,7 @@ static str pv_uri_scheme[] = {
+ 		{ "urn",  3 },
+ 		{ 0, 0 }
+ 	};
++static char _empty_str[] = "";
+ 
+ int _pv_pid = 0;
+ 
+@@ -1779,7 +1780,7 @@ int pv_set_ruri_user(struct sip_msg* msg, pv_param_t *param,
+ 		memset(&act, 0, sizeof(act));
+ 		act.type = SET_USER_T;
+ 		act.val[0].type = STRING_ST;
+-		act.val[0].u.string = "";
++		act.val[0].u.string = _empty_str;
+ 		init_run_actions_ctx(&h);
+ 		if (do_action(&h, &act, msg)<0)
+ 		{
+@@ -1872,7 +1873,7 @@ int pv_set_ruri_port(struct sip_msg* msg, pv_param_t *param,
+ 		memset(&act, 0, sizeof(act));
+ 		act.type = SET_PORT_T;
+ 		act.val[0].type = STRING_ST;
+-		act.val[0].u.string = "";
++		act.val[0].u.string = _empty_str;
+ 		init_run_actions_ctx(&h);
+ 		if (do_action(&h, &act, msg)<0)
+ 		{
+diff --git a/modules_k/pv/pv_trans.c b/modules_k/pv/pv_trans.c
+index d127e76..af455eb 100644
+--- a/modules_k/pv/pv_trans.c
++++ b/modules_k/pv/pv_trans.c
+@@ -49,6 +49,12 @@
+ #include "pv_trans.h"
+ 
+ 
++static char _empty_str[] = "";
++static str _tr_empty = { _empty_str, 0 };
++static str _tr_uri = {0, 0};
++static struct sip_uri _tr_parsed_uri;
++static param_t* _tr_uri_params = NULL;
++
+ /*! transformation buffer size */
+ #define TR_BUFFER_SIZE 65536
+ #define TR_BUFFER_SLOTS	4
+@@ -384,8 +390,7 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
+ 					val->rs.s = p+1;
+ 					val->rs.len = s-p;
+ 				} else {
+-					val->rs.s = "";
+-					val->rs.len = 0;
++					val->rs = _tr_empty;
+ 				}
+ 			} else {
+ 				s = val->rs.s;
+@@ -406,8 +411,7 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
+ 					val->rs.s = s;
+ 					val->rs.len = p-s;
+ 				} else {
+-					val->rs.s = "";
+-					val->rs.len = 0;
++					val->rs = _tr_empty;
+ 				}
+ 			}
+ 			break;
+@@ -748,11 +752,6 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
+ 	return 0;
+ }
+ 
+-static str _tr_empty = { "", 0 };
+-static str _tr_uri = {0, 0};
+-static struct sip_uri _tr_parsed_uri;
+-static param_t* _tr_uri_params = NULL;
+-
+ 
+ /*!
+  * \brief Evaluate URI transformations
+-- 
+1.7.9.5
+

Added: kamailio/trunk/debian/patches/upstream/0003-dialog-fix-bug-when-detect_spirals-enabled.patch
URL: http://svn.debian.org/wsvn/pkg-voip/kamailio/trunk/debian/patches/upstream/0003-dialog-fix-bug-when-detect_spirals-enabled.patch?rev=10082&op=file
==============================================================================
--- kamailio/trunk/debian/patches/upstream/0003-dialog-fix-bug-when-detect_spirals-enabled.patch (added)
+++ kamailio/trunk/debian/patches/upstream/0003-dialog-fix-bug-when-detect_spirals-enabled.patch Wed Jan 23 13:34:53 2013
@@ -1,0 +1,57 @@
+From b1398b2faa5a01b652a8c265b93c4846e35f97d9 Mon Sep 17 00:00:00 2001
+From: Anca Vamanu <anca.vamanu at 1and1.ro>
+Date: Fri, 11 Jan 2013 11:07:45 +0200
+Subject: [PATCH] dialog: fix bug when detect_spirals enabled
+
+If detect_spirals enabled and the caller sent an Invite which received a
+negative response and then immediately sent another Invite with the
+same callid and tag, the module did not create a dialog record for the
+second Invite. It wrongly concluded that the Invite is spiraled. This
+resulted in missing CDR for that call.
+Behavior observed if the first Invite has a small Session-Timer interval
+and receives a 422 reply. When the phone sent the second Invite with a
+larger Session-Timer, which could have been successful, it was not recorded
+by the dialog module.
+(cherry picked from commit 5a78a8b8ec104550a37d8e2ae9005bf87d21e00f)
+---
+ modules_k/dialog/dlg_handlers.c |   24 ++++++++++++++----------
+ 1 file changed, 14 insertions(+), 10 deletions(-)
+
+diff --git a/modules_k/dialog/dlg_handlers.c b/modules_k/dialog/dlg_handlers.c
+index b350ba7..f98f36b 100644
+--- a/modules_k/dialog/dlg_handlers.c
++++ b/modules_k/dialog/dlg_handlers.c
+@@ -805,16 +805,20 @@ int dlg_new_dialog(sip_msg_t *req, struct cell *t, const int run_initial_cbs)
+         dlg = get_dlg(&callid, &ftag, &ttag, &dir);
+         if (dlg)
+         {
+-            LM_DBG("Callid '%.*s' found, must be a spiraled request\n",
+-                callid.len, callid.s);
+-            spiral_detected = 1;
+-
+-            if (run_initial_cbs)
+-                run_dlg_callbacks( DLGCB_SPIRALED, dlg, req, NULL,
+-						DLG_DIR_DOWNSTREAM, 0);
+-            /* get_dlg() has incremented the ref count by 1
+-			 * - it's ok, dlg will be unref at the end of function */
+-            goto finish;
++			if ( dlg->state != DLG_STATE_DELETED )
++			{
++				LM_DBG("Callid '%.*s' found, must be a spiraled request\n",
++					callid.len, callid.s);
++				spiral_detected = 1;
++
++				if (run_initial_cbs)
++					run_dlg_callbacks( DLGCB_SPIRALED, dlg, req, NULL,
++							DLG_DIR_DOWNSTREAM, 0);
++				/* get_dlg() has incremented the ref count by 1
++				 * - it's ok, dlg will be unref at the end of function */
++				goto finish;
++			}
++			dlg_release(dlg);
+         }
+     }
+     spiral_detected = 0;
+-- 
+1.7.9.5
+

Added: kamailio/trunk/debian/patches/upstream/0005-dialog-fix-for-is_in_profile.patch
URL: http://svn.debian.org/wsvn/pkg-voip/kamailio/trunk/debian/patches/upstream/0005-dialog-fix-for-is_in_profile.patch?rev=10082&op=file
==============================================================================
--- kamailio/trunk/debian/patches/upstream/0005-dialog-fix-for-is_in_profile.patch (added)
+++ kamailio/trunk/debian/patches/upstream/0005-dialog-fix-for-is_in_profile.patch Wed Jan 23 13:34:53 2013
@@ -1,0 +1,56 @@
+From a1502e5ca1470276ca6d7c82956fee9a5390348b Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Wed, 16 Jan 2013 22:37:08 +0100
+Subject: [PATCH] dialog: fix for is_in_profile()
+
+- function was broken, reported by Klaus Darilion
+(cherry picked from commit 83eafc8d8f767f4705d5f76ad0ffd4349a06c927)
+---
+ modules_k/dialog/dlg_profile.c |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/modules_k/dialog/dlg_profile.c b/modules_k/dialog/dlg_profile.c
+index 3317216..370f370 100644
+--- a/modules_k/dialog/dlg_profile.c
++++ b/modules_k/dialog/dlg_profile.c
+@@ -613,6 +613,7 @@ int is_dlg_in_profile(struct sip_msg *msg, struct dlg_profile_table *profile,
+ 	struct dlg_cell *dlg;
+ 	struct dlg_profile_link *linker;
+ 	struct dlg_entry *d_entry;
++	int ret;
+ 
+ 	/* get current dialog */
+ 	dlg = dlg_get_msg_dialog(msg);
+@@ -620,6 +621,7 @@ int is_dlg_in_profile(struct sip_msg *msg, struct dlg_profile_table *profile,
+ 	if (dlg==NULL)
+ 		return -1;
+ 
++	ret = -1;
+ 	/* check the dialog linkers */
+ 	d_entry = &d_table->entries[dlg->h_entry];
+ 	dlg_lock( d_table, d_entry);
+@@ -627,10 +629,12 @@ int is_dlg_in_profile(struct sip_msg *msg, struct dlg_profile_table *profile,
+ 		if (linker->profile==profile) {
+ 			if (profile->has_value==0) {
+ 				dlg_unlock( d_table, d_entry);
++				ret = 1;
+ 				goto done;
+ 			} else if (value && value->len==linker->hash_linker.value.len &&
+ 			memcmp(value->s,linker->hash_linker.value.s,value->len)==0){
+ 				dlg_unlock( d_table, d_entry);
++				ret = 1;
+ 				goto done;
+ 			}
+ 			/* allow further search - maybe the dialog is inserted twice in
+@@ -642,7 +646,7 @@ int is_dlg_in_profile(struct sip_msg *msg, struct dlg_profile_table *profile,
+ 
+ done:
+ 	dlg_release(dlg);
+-	return -1;
++	return ret;
+ }
+ 
+ 
+-- 
+1.7.9.5
+




More information about the Pkg-voip-commits mailing list