From: Henning Westerholt Date: Wed, 16 Nov 2022 15:33:06 +0000 Subject: dialog: deactivate print variable function which is only used for debugging - deactivate print variable function which is only used for debugging - this function is not good for performance and might also cause race conditions --- src/modules/dialog/dialog.c | 3 +++ src/modules/dialog/dlg_var.c | 12 +++++++++--- src/modules/dialog/dlg_var.h | 2 ++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/modules/dialog/dialog.c b/src/modules/dialog/dialog.c index 243bb9b..9823877 100644 --- a/src/modules/dialog/dialog.c +++ b/src/modules/dialog/dialog.c @@ -140,6 +140,8 @@ stat_var *expired_dlgs = 0; stat_var *failed_dlgs = 0; stat_var *early_dlgs = 0; +int debug_variables_list = 0; + struct tm_binds d_tmb; struct rr_binds d_rrb; pv_spec_t timeout_avp; @@ -327,6 +329,7 @@ static param_export_t mod_params[]={ { "h_id_start", PARAM_INT, &dlg_h_id_start }, { "h_id_step", PARAM_INT, &dlg_h_id_step }, { "keep_proxy_rr", INT_PARAM, &dlg_keep_proxy_rr }, + { "debug_variables", PARAM_INT, &debug_variables_list }, { 0,0,0 } }; diff --git a/src/modules/dialog/dlg_var.c b/src/modules/dialog/dlg_var.c index b2a373a..311b3c0 100644 --- a/src/modules/dialog/dlg_var.c +++ b/src/modules/dialog/dlg_var.c @@ -317,7 +317,9 @@ int set_dlg_variable(struct dlg_cell *dlg, str *key, str *val) if ( dlg_db_mode==DB_MODE_REALTIME ) update_dialog_dbinfo(dlg); - print_lists(dlg); + if(unlikely(debug_variables_list)) { + print_lists(dlg); + } return 0; @@ -366,7 +368,9 @@ int pv_get_dlg_variable(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) } } - print_lists(dlg); + if(unlikely(debug_variables_list)) { + print_lists(dlg); + } /* unlock dialog */ if (dlg) { @@ -440,7 +444,9 @@ int pv_set_dlg_variable(struct sip_msg* msg, pv_param_t *param, int op, pv_value } dlg_unlock(d_table, &(d_table->entries[dlg->h_entry])); } - print_lists(dlg); + if(unlikely(debug_variables_list)) { + print_lists(dlg); + } dlg_release(dlg); return 0; diff --git a/src/modules/dialog/dlg_var.h b/src/modules/dialog/dlg_var.h index f13fa45..dc7698d 100644 --- a/src/modules/dialog/dlg_var.h +++ b/src/modules/dialog/dlg_var.h @@ -83,6 +83,8 @@ extern stat_var *processed_dlgs; /*!< number of processed dialogs */ extern stat_var *expired_dlgs; /*!< number of expired dialogs */ extern stat_var *failed_dlgs; /*!< number of failed dialogs */ +extern int debug_variables_list; + int pv_get_dlg_ctx(sip_msg_t *msg, pv_param_t *param, pv_value_t *res); int pv_set_dlg_ctx(sip_msg_t *msg, pv_param_t *param,