mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.7 KiB
86 lines
2.7 KiB
From: Henning Westerholt <hw@gilawa.com>
|
|
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,
|