diff options
author | Richard Mudgett <rmudgett@digium.com> | 2012-04-26 01:29:09 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2012-04-26 01:29:09 +0000 |
commit | e736a4fed3e19cf0dd235e60bd47980298106b98 (patch) | |
tree | b35f0be6954b0dce5b4982ba9d91b285fcee345d /apps | |
parent | 0986873128aad74cd7b385ecef8568c0204d752a (diff) |
* Put more information in pickup_exec() LOG_NOTICE.
* Delay duplicating a string on the stack in pickup_exec().
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@363839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_directed_pickup.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/app_directed_pickup.c b/apps/app_directed_pickup.c index 159348650..77468aa43 100644 --- a/apps/app_directed_pickup.c +++ b/apps/app_directed_pickup.c @@ -274,14 +274,16 @@ static int pickup_by_group(struct ast_channel *chan) /* application entry point for Pickup() */ static int pickup_exec(struct ast_channel *chan, const char *data) { - char *tmp = ast_strdupa(data); - char *exten = NULL, *context = NULL; + char *tmp; + char *exten; + char *context; if (ast_strlen_zero(data)) { return pickup_by_group(chan) ? 0 : -1; } /* Parse extension (and context if there) */ + tmp = ast_strdupa(data); while (!ast_strlen_zero(tmp) && (exten = strsep(&tmp, "&"))) { if ((context = strchr(exten, '@'))) *context++ = '\0'; @@ -291,12 +293,15 @@ static int pickup_exec(struct ast_channel *chan, const char *data) return -1; } } else { - if (!pickup_by_exten(chan, exten, !ast_strlen_zero(context) ? context : ast_channel_context(chan))) { + if (ast_strlen_zero(context)) { + context = (char *) ast_channel_context(chan); + } + if (!pickup_by_exten(chan, exten, context)) { /* Pickup successful. Stop the dialplan this channel is a zombie. */ return -1; } } - ast_log(LOG_NOTICE, "No target channel found for %s.\n", exten); + ast_log(LOG_NOTICE, "No target channel found for %s@%s.\n", exten, context); } /* Pickup failed. Keep going in the dialplan. */ |