Skip to content

Commit

Permalink
dialog: api function to get the status if dlg var is set or not
Browse files Browse the repository at this point in the history
(cherry picked from commit c2c3211)
  • Loading branch information
miconda committed Sep 27, 2022
1 parent ed86cd4 commit bd87a18
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/modules/dialog/dlg_cb.h
Expand Up @@ -63,6 +63,9 @@ typedef int (*get_dlg_varval_f)( struct dlg_cell* dlg,
/* method to get a variable value pkg-allocated duplicate from a dialog */
typedef int (*get_dlg_vardup_f)( struct dlg_cell* dlg,
str* key, str* val);
/* method to get if a variable value is set or not from a dialog */
typedef int (*get_dlg_varstatus_f)( struct dlg_cell* dlg,
str* key);

#define CONFIRMED_DIALOG_STATE 1

Expand Down
25 changes: 25 additions & 0 deletions src/modules/dialog/dlg_var.c
Expand Up @@ -376,6 +376,31 @@ int get_dlg_vardup(struct dlg_cell *dlg, str *key, str *val)
return -2;
}

/**
* return the status if the dlg variable value is set or not
* - 1 - variable is set
* - 0 - variable is not set
*/
int get_dlg_varstatus(struct dlg_cell *dlg, str *key)
{
str* var = NULL;
int ret = 0;

if( !dlg || !key || key->len<=0) {
LM_ERR("BUG - bad parameters\n");
return 0;
}

dlg_lock(d_table, &(d_table->entries[dlg->h_entry]));
var = get_dlg_variable_unsafe(dlg, key);
if(var && var->s) {
ret = 1;
}
dlg_unlock(d_table, &(d_table->entries[dlg->h_entry]));

return ret;
}

int get_dlg_variable_uintval(struct dlg_cell *dlg, str *key, unsigned int *uval)
{
str* var = NULL;
Expand Down
1 change: 1 addition & 0 deletions src/modules/dialog/dlg_var.h
Expand Up @@ -62,6 +62,7 @@ typedef struct dlg_var {
str* get_dlg_varref(dlg_cell_t *dlg, str *key);
int get_dlg_varval(dlg_cell_t *dlg, str *key, str *val);
int get_dlg_vardup(dlg_cell_t *dlg, str *key, str *val);
int get_dlg_varstatus(dlg_cell_t *dlg, str *key);
int set_dlg_variable(dlg_cell_t *dlg, str *key, str *val);

int get_dlg_variable_uintval(struct dlg_cell *dlg, str *key, unsigned int *uval);
Expand Down

0 comments on commit bd87a18

Please sign in to comment.