[sr-dev] git:master:e4cf6739: dialog: do unlock after saving updated dialog details

Daniel-Constantin Mierla miconda at gmail.com
Mon Oct 5 11:53:58 CEST 2020


Module: kamailio
Branch: master
Commit: e4cf6739e62c2ac1e5364315aaed1a7b73919253
URL: https://github.com/kamailio/kamailio/commit/e4cf6739e62c2ac1e5364315aaed1a7b73919253

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2020-10-05T11:53:01+02:00

dialog: do unlock after saving updated dialog details

- lock()/unlock() for dialog slots are reentrant

---

Modified: src/modules/dialog/dlg_var.c

---

Diff:  https://github.com/kamailio/kamailio/commit/e4cf6739e62c2ac1e5364315aaed1a7b73919253.diff
Patch: https://github.com/kamailio/kamailio/commit/e4cf6739e62c2ac1e5364315aaed1a7b73919253.patch

---

diff --git a/src/modules/dialog/dlg_var.c b/src/modules/dialog/dlg_var.c
index fa9eae9d1f..b2a373a501 100644
--- a/src/modules/dialog/dlg_var.c
+++ b/src/modules/dialog/dlg_var.c
@@ -434,10 +434,11 @@ int pv_set_dlg_variable(struct sip_msg* msg, pv_param_t *param, int op, pv_value
 	/* unlock dialog */
 	if (dlg) {
 		dlg->dflags |= DLG_FLAG_CHANGED_VARS;
-		dlg_unlock(d_table, &(d_table->entries[dlg->h_entry]));
-		if ( dlg_db_mode==DB_MODE_REALTIME )
+		if ( dlg_db_mode==DB_MODE_REALTIME ) {
+			/* dlg_lock() / dlg_unlock() are reentrant */
 			update_dialog_dbinfo(dlg);
-
+		}
+		dlg_unlock(d_table, &(d_table->entries[dlg->h_entry]));
 	}
 	print_lists(dlg);
 




More information about the sr-dev mailing list