Parcourir la source

- port from opensips, r4513, credits goes to Bogdan
- bug fixed - active and early dialogs counters (statistics variables)
are properly set while loading DB content
- probably related to #2030655


git-svn-id: https://openser.svn.sourceforge.net/svnroot/openser/trunk@4551 689a6050-402a-0410-94f2-e92a70836424

Henning Westerholt il y a 17 ans
Parent
commit
138c64492e
1 fichiers modifiés avec 12 ajouts et 0 suppressions
  1. 12 0
      modules_k/dialog/dlg_db_handler.c

+ 12 - 0
modules_k/dialog/dlg_db_handler.c

@@ -64,6 +64,10 @@ int dlg_db_mode				=	DB_MODE_NONE;
 static db_con_t* dialog_db_handle    = 0; /* database connection handle */
 static db_func_t dialog_dbf;
 
+extern int dlg_enable_stats;
+extern stat_var *active_dlgs;
+extern stat_var *early_dlgs;
+
 #define SET_STR_VALUE(_val, _str)\
 	do{\
 			VAL_STR((_val)).s 		= (_str).s;\
@@ -309,7 +313,15 @@ static int load_dialog_info_from_db(int dlg_hash_size)
 		GET_STR_VALUE(to_tag, values, 6, 1, 1);
 
 		dlg->start_ts	= VAL_INT(values+7);
+
 		dlg->state 		= VAL_INT(values+8);
+		if (dlg->state==DLG_STATE_CONFIRMED_NA ||
+		dlg->state==DLG_STATE_CONFIRMED) {
+			if_update_stat(dlg_enable_stats, active_dlgs, 1);
+		} else if (dlg->state==DLG_STATE_EARLY) {
+			if_update_stat(dlg_enable_stats, early_dlgs, 1);
+		}
+
 		dlg->tl.timeout = (unsigned int)(VAL_INT(values+9)) + get_ticks();
 		if (dlg->tl.timeout<=(unsigned int)time(0))
 			dlg->tl.timeout = 0;