|
@@ -570,10 +570,9 @@ static int child_init(int rank)
|
|
|
if_update_stat(dlg_enable_stats, early_dlgs, early_dlgs_cnt);
|
|
|
}
|
|
|
|
|
|
- if ( (dlg_db_mode==DB_MODE_REALTIME && (rank>0 || rank==PROC_TIMER)) ||
|
|
|
- (dlg_db_mode==DB_MODE_SHUTDOWN && (rank==PROC_MAIN)) ||
|
|
|
- (dlg_db_mode==DB_MODE_DELAYED && (rank==PROC_MAIN || rank==PROC_TIMER ||
|
|
|
- rank>0) )){
|
|
|
+ if ( ((dlg_db_mode==DB_MODE_REALTIME || DB_MODE_DELAYED) &&
|
|
|
+ (rank>0 || rank==PROC_TIMER)) ||
|
|
|
+ (dlg_db_mode==DB_MODE_SHUTDOWN && (rank==PROC_MAIN)) ) {
|
|
|
if ( dlg_connect_db(&db_url) ) {
|
|
|
LM_ERR("failed to connect to database (rank=%d)\n",rank);
|
|
|
return -1;
|
|
@@ -584,6 +583,11 @@ static int child_init(int rank)
|
|
|
* for the rest of the processes will be the same as DB_MODE_NONE */
|
|
|
if (dlg_db_mode==DB_MODE_SHUTDOWN && rank!=PROC_MAIN)
|
|
|
dlg_db_mode = DB_MODE_NONE;
|
|
|
+ /* in DB_MODE_REALTIME and DB_MODE_DELAYED the PROC_MAIN or the ones
|
|
|
+ * with negative rank will have no db connection */
|
|
|
+ if ( (dlg_db_mode==DB_MODE_REALTIME || dlg_db_mode==DB_MODE_DELAYED) &&
|
|
|
+ (rank<0 || rank==PROC_MAIN))
|
|
|
+ dlg_db_mode = DB_MODE_NONE;
|
|
|
|
|
|
return 0;
|
|
|
}
|