aboutsummaryrefslogtreecommitdiffstats
path: root/main/features.c
diff options
context:
space:
mode:
authorjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-06 22:04:23 +0000
committerjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-06 22:04:23 +0000
commit4713fad03870b89a60079a5b9d63b54925781c0a (patch)
tree07a4add4b97600cfd219b546401107c21779db02 /main/features.c
parent1b0ad9dc516b1f4237241c5db9eb21006b8bca16 (diff)
Merged revisions 146875 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r146875 | jpeeler | 2008-10-06 17:03:01 -0500 (Mon, 06 Oct 2008) | 5 lines Explicitly set args in park_call_exec NULL so in the case of no options being passed in, there is no garbage attempted to be used. Also, do not set args to unknown value again if there are no options passed in. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@146876 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/features.c')
-rw-r--r--main/features.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/main/features.c b/main/features.c
index de04dc210..20023dabf 100644
--- a/main/features.c
+++ b/main/features.c
@@ -2773,22 +2773,30 @@ static int park_call_exec(struct ast_channel *chan, void *data)
if (!res) {
struct ast_park_call_args args = {
.orig_chan_name = orig_chan_name,
+ .extout = NULL,
+ .return_con = NULL,
+ .return_ext = NULL,
};
struct ast_flags flags = { 0 };
- if (parse && !ast_strlen_zero(app_args.timeout)) {
- if (sscanf(app_args.timeout, "%d", &args.timeout) != 1) {
- ast_log(LOG_WARNING, "Invalid timeout '%s' provided\n", app_args.timeout);
- args.timeout = 0;
+ if (parse) {
+ if (!ast_strlen_zero(app_args.timeout)) {
+ if (sscanf(app_args.timeout, "%d", &args.timeout) != 1) {
+ ast_log(LOG_WARNING, "Invalid timeout '%s' provided\n", app_args.timeout);
+ args.timeout = 0;
+ }
}
- }
-
- args.return_con = app_args.return_con;
- args.return_ext = app_args.return_ext;
- if (parse && !ast_strlen_zero(app_args.return_pri)) {
- if (sscanf(app_args.return_pri, "%d", &args.return_pri) != 1) {
- ast_log(LOG_WARNING, "Invalid priority '%s' specified\n", app_args.return_pri);
- args.return_pri = 0;
+ if (!ast_strlen_zero(app_args.return_con)) {
+ args.return_con = app_args.return_con;
+ }
+ if (!ast_strlen_zero(app_args.return_ext)) {
+ args.return_ext = app_args.return_ext;
+ }
+ if (!ast_strlen_zero(app_args.return_pri)) {
+ if (sscanf(app_args.return_pri, "%d", &args.return_pri) != 1) {
+ ast_log(LOG_WARNING, "Invalid priority '%s' specified\n", app_args.return_pri);
+ args.return_pri = 0;
+ }
}
}