aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/app_queue.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 70704f02b..24fe45afa 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1634,20 +1634,26 @@ static struct call_queue *load_realtime_queue(const char *queuename)
static int update_realtime_member_field(struct member *mem, const char *queue_name, const char *field, const char *value)
{
- struct ast_variable *var;
+ struct ast_variable *var, *origvar;
int ret = -1;
- if (!(var = ast_load_realtime("queue_members", "interface", mem->interface, "queue_name", queue_name, NULL)))
+ if (!(var = ast_load_realtime("queue_members", "interface", mem->interface, "queue_name", queue_name, NULL))) {
return ret;
+ }
+
+ origvar = var;
while (var) {
- if (!strcmp(var->name, "uniqueid"))
+ if (!strcmp(var->name, "uniqueid")) {
break;
+ }
var = var->next;
}
if (var && !ast_strlen_zero(var->value)) {
- if ((ast_update_realtime("queue_members", "uniqueid", var->value, field, value, NULL)) > -1)
+ if ((ast_update_realtime("queue_members", "uniqueid", var->value, field, value, NULL)) > -1) {
ret = 0;
+ }
}
+ ast_variables_destroy(origvar);
return ret;
}