[sr-dev] git:3.2: dialog(k): proper local linking of profile before dlg is created

Daniel-Constantin Mierla miconda at gmail.com
Fri Jun 15 17:22:53 CEST 2012


Module: sip-router
Branch: 3.2
Commit: 72899d84896a32d6a1598e3a4b2db61da4283327
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=72899d84896a32d6a1598e3a4b2db61da4283327

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date:   Fri Jun 15 17:17:07 2012 +0200

dialog(k): proper local linking of profile before dlg is created

- reported by Nick R.
(cherry picked from commit 80c4f4b1d9ff31e79c999b82db35c3b9abc56e22)

---

 modules_k/dialog/dlg_profile.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/modules_k/dialog/dlg_profile.c b/modules_k/dialog/dlg_profile.c
index 4765763..b1e3078 100644
--- a/modules_k/dialog/dlg_profile.c
+++ b/modules_k/dialog/dlg_profile.c
@@ -467,6 +467,13 @@ int set_dlg_profile(struct sip_msg *msg, str *value, struct dlg_profile_table *p
 		/* add linker directly to the dialog and profile */
 		link_dlg_profile( linker, dlg);
 	} else {
+		/* if existing linkers are not from current request, just discard them */
+		if (msg->id!=current_dlg_msg_id || msg->pid!=current_dlg_msg_pid) {
+			current_dlg_msg_id = msg->id;
+			current_dlg_msg_pid = msg->pid;
+			destroy_linkers(current_pending_linkers);
+			current_pending_linkers = NULL;
+		}
 		/* no dialog yet -> set linker as pending */
 		linker->next = current_pending_linkers;
 		current_pending_linkers = linker;




More information about the sr-dev mailing list