From a5db0a6103044fecf305f6f1c65bec1e4a3f5075 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Tue, 27 Nov 2007 23:10:05 +0000 Subject: [PATCH] Two changes with regards to the 'eventwhencalled' option of queues.conf 1) Due to some signed vs. unsigned silliness, setting 'eventwhencalled' to 'vars' or 'yes' did exactly the same thing. Thus the sign change of the ast_true call. 2) The vars2manager function overwrote a \n for every channel variable it parsed, resulting in bizarre output for the channel variables. This patch remedies this. (related to issue #11385, however I'm not sure if this will actually be enough to close it) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89837 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_queue.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/app_queue.c b/apps/app_queue.c index 7bae8ca51b..d392fdbb83 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -1016,7 +1016,7 @@ static void queue_set_param(struct call_queue *q, const char *param, const char if (!strcasecmp(val, "vars")) { q->eventwhencalled = QUEUE_EVENT_VARIABLES; } else { - q->eventwhencalled = ast_true(val); + q->eventwhencalled = -(ast_true(val)); } } else if (!strcasecmp(param, "reportholdtime")) { q->reportholdtime = ast_true(val); @@ -1739,8 +1739,8 @@ static char *vars2manager(struct ast_channel *chan, char *vars, size_t len) if (tmp[i + 1] == '\0') break; if (tmp[i] == '\n') { - vars[j] = '\r'; - vars[++j] = '\n'; + vars[j++] = '\r'; + vars[j++] = '\n'; ast_copy_string(&(vars[j]), "Variable: ", len - j); j += 9;