From 19a080ddd780ac2fa053c8b40e171b67081b3e0f Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Tue, 4 May 2004 19:11:25 +0000 Subject: strlen fixes and don't destroy SIP channels that still have pending things on them (bug #1552 et al) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2890 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_dial.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'apps/app_dial.c') diff --git a/apps/app_dial.c b/apps/app_dial.c index 10017e687..0264d9ac3 100755 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -201,7 +202,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct localu *allowdisconnect = o->allowdisconnect; } } else if (o->chan && (o->chan == winner)) { - if (strlen(o->chan->call_forward)) { + if (!ast_strlen_zero(o->chan->call_forward)) { char tmpchan[256]; /* Before processing channel, go ahead and check for forwarding */ if (option_verbose > 2) @@ -235,7 +236,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct localu } if (o->chan->rdnis) free(o->chan->rdnis); - if (strlen(in->macroexten)) + if (!ast_strlen_zero(in->macroexten)) o->chan->rdnis = strdup(in->macroexten); else o->chan->rdnis = strdup(in->exten); @@ -445,7 +446,7 @@ static int dial_exec(struct ast_channel *chan, void *data) } } else timeout = NULL; - if (!peers || !strlen(peers)) { + if (!peers || ast_strlen_zero(peers)) { ast_log(LOG_WARNING, "Dial argument takes format (technology1/number1&technology2/number2...|optional timeout)\n"); goto out; } @@ -581,7 +582,7 @@ static int dial_exec(struct ast_channel *chan, void *data) } if (resetcdr && chan->cdr) ast_cdr_reset(chan->cdr, 0); - if (!strlen(privdb) && privacy) { + if (ast_strlen_zero(privdb) && privacy) { /* If privdb is not specified and we are using privacy, copy from extension */ strncpy(privdb, chan->exten, sizeof(privdb) - 1); } @@ -658,7 +659,7 @@ static int dial_exec(struct ast_channel *chan, void *data) cur = rest; continue; } - if (strlen(tmp->chan->call_forward)) { + if (!ast_strlen_zero(tmp->chan->call_forward)) { char tmpchan[256]; if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "Forwarding call to '%s@%s'\n", tmp->chan->call_forward, tmp->chan->context); @@ -721,7 +722,7 @@ static int dial_exec(struct ast_channel *chan, void *data) tmp->chan->callerid = NULL; /* Copy language from incoming to outgoing */ strcpy(tmp->chan->language, chan->language); - if (!strlen(tmp->chan->musicclass)) + if (ast_strlen_zero(tmp->chan->musicclass)) strncpy(tmp->chan->musicclass, chan->musicclass, sizeof(tmp->chan->musicclass) - 1); if (chan->ani) tmp->chan->ani = strdup(chan->ani); @@ -768,7 +769,7 @@ static int dial_exec(struct ast_channel *chan, void *data) cur = rest; } while(cur); - if (timeout && strlen(timeout)) { + if (timeout && !ast_strlen_zero(timeout)) { to = atoi(timeout); if (to > 0) to *= 1000; @@ -808,7 +809,7 @@ static int dial_exec(struct ast_channel *chan, void *data) return -1; } /* JDG: sendurl */ - if( url && strlen(url) && ast_channel_supports_html(peer) ) { + if( url && !ast_strlen_zero(url) && ast_channel_supports_html(peer) ) { ast_log(LOG_DEBUG, "app_dial: sendurl=%s.\n", url); ast_channel_sendurl( peer, url ); } /* /JDG */ -- cgit v1.2.3