Explorar o código

dialog: open db connection in POSTCHILDINIT callback for DB_MODE_SHUTDOWN

(cherry picked from commit 1ff86ffceede46c7a67fec92c8319c34c916a545)
Daniel-Constantin Mierla %!s(int64=3) %!d(string=hai) anos
pai
achega
a1c0788f33
Modificáronse 1 ficheiros con 7 adicións e 3 borrados
  1. 7 3
      src/modules/dialog/dialog.c

+ 7 - 3
src/modules/dialog/dialog.c

@@ -738,6 +738,10 @@ static int mod_init(void)
 		return -1;
 	}
 
+	if(dlg_db_mode==DB_MODE_SHUTDOWN) {
+		ksr_module_set_flag(KSRMOD_FLAG_POSTCHILDINIT);
+	}
+
 	return 0;
 }
 
@@ -777,9 +781,9 @@ static int child_init(int rank)
 		}
 	}
 
-	if ( ((dlg_db_mode==DB_MODE_REALTIME || dlg_db_mode==DB_MODE_DELAYED) &&
-	(rank>0 || rank==PROC_TIMER || rank==PROC_RPC)) ||
-	(dlg_db_mode==DB_MODE_SHUTDOWN && (rank==PROC_MAIN)) ) {
+	if ( ((dlg_db_mode==DB_MODE_REALTIME || dlg_db_mode==DB_MODE_DELAYED)
+				&& (rank>0 || rank==PROC_TIMER || rank==PROC_RPC))
+			|| (dlg_db_mode==DB_MODE_SHUTDOWN && (rank==PROC_POSTCHILDINIT)) ) {
 		if ( dlg_connect_db(&db_url) ) {
 			LM_ERR("failed to connect to database (rank=%d)\n",rank);
 			return -1;