[sr-dev] git:master: modules/dialog_ng: Fix "CRITICAL bogus event 6 in state 2" problem

Richard Good richard.good at smilecoms.com
Wed Nov 6 08:15:22 CET 2013


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

Author: Richard Good <richard.good at smilecoms.com>
Committer: Richard Good <richard.good at smilecoms.com>
Date:   Wed Nov  6 09:14:45 2013 +0200

modules/dialog_ng: Fix "CRITICAL bogus event 6 in state 2" problem
	Use TM callback TMCB_RESPONSE_READY instead of TMCB_RESPONSE_OUT to prevent race condition resulting in bogus event

---

 modules/dialog_ng/dlg_handlers.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/modules/dialog_ng/dlg_handlers.c b/modules/dialog_ng/dlg_handlers.c
index 43b025b..262e923 100644
--- a/modules/dialog_ng/dlg_handlers.c
+++ b/modules/dialog_ng/dlg_handlers.c
@@ -380,12 +380,12 @@ static void dlg_onreply(struct cell* t, int type, struct tmcb_params *param) {
         return;
     }
 
-    if (type == TMCB_RESPONSE_READY) {
-        LM_DBG("TMCB_RESPONSE_READY\n");
+    if (type == TMCB_RESPONSE_OUT) {
+        LM_DBG("TMCB_RESPONSE_OUT\n");
         return;
     }
 
-    if (type == TMCB_RESPONSE_OUT) {
+    if (type == TMCB_RESPONSE_READY) {
         if (rpl == FAKED_REPLY) {
             LM_DBG("Faked reply\n");
             return;
@@ -426,7 +426,7 @@ static void dlg_onreply(struct cell* t, int type, struct tmcb_params *param) {
     LM_DBG("Calling next_state_dlg and event is %i\n", event);
     next_state_dlg(dlg, event, &old_state, &new_state, &unref, &to_tag);
 
-    if (type == TMCB_RESPONSE_OUT) {
+    if (type == TMCB_RESPONSE_READY) {
         LM_DBG("Checking if there is an existing dialog_out entry with same to-tag");
 
         dlg_entry_out = &dlg->dlg_entry_out;




More information about the sr-dev mailing list