2005-11-07 Kevin P. Fleming <kpfleming@digium.com>
+ * many files: don't check for NULL before calling ast_strlen_zero, it can do it itself (issue #5648)
+
* pbx.c (handle_show_hints): use proper state-to-string function for hint state (issue #5583)
* rtp.c: use unsigned format for debug packet output (issue #5595)
cur = qe->parent->members;
if (!ast_strlen_zero(qe->announce))
announce = qe->announce;
- if (announceoverride && !ast_strlen_zero(announceoverride))
+ if (!ast_strlen_zero(announceoverride))
announce = announceoverride;
while(cur) {
}
/* Drop out of the queue at this point, to prepare for next caller */
leave_queue(qe);
- if (url && !ast_strlen_zero(url) && ast_channel_supports_html(peer)) {
+ if (!ast_strlen_zero(url) && ast_channel_supports_html(peer)) {
if (option_debug)
ast_log(LOG_DEBUG, "app_queue: sendurl=%s.\n", url);
ast_channel_sendurl(peer, url);
/* Strip off caller ID number from name */
ast_log(LOG_DEBUG, "VM-CID: composite caller ID received: %s, context: %s\n", cid, context);
ast_callerid_parse(cid, &name, &callerid);
- if ((callerid != NULL)&&(!res)&&(!ast_strlen_zero(callerid))){
+ if ((!res)&&(!ast_strlen_zero(callerid))){
/* Check for internal contexts and only */
/* say extension when the call didn't come from an internal context in the list */
for (i = 0 ; i < MAX_NUM_CID_CONTEXTS ; i++){
if (chan->_state != AST_STATE_UP)
ast_answer(chan);
- if((desired_group = ast_strdupa((char *) data)) && !ast_strlen_zero(desired_group)) {
+ desired_group = ast_strdupa((char *) data);
+ if(!ast_strlen_zero(desired_group)) {
ast_verbose(VERBOSE_PREFIX_3 "Scanning for group %s\n", desired_group);
search_group = 1;
}
return -1;
}
- if (!data || ast_strlen_zero((char *)data)) {
+ if (ast_strlen_zero((char *)data)) {
ast_log(LOG_WARNING, "misdn_facility Requires arguments\n");
return -1;
}
return -1;
}
- if (!data || ast_strlen_zero((char *)data)) {
+ if (ast_strlen_zero((char *)data)) {
ast_log(LOG_WARNING, "misdn_set_opt Requires arguments\n");
return -1;
}
add_header(&req, "Referred-By", p->referred_by);
}
#ifdef OSP_SUPPORT
- if (p->options && p->options->osptoken && !ast_strlen_zero(p->options->osptoken)) {
+ if (p->options && !ast_strlen_zero(p->options->osptoken)) {
ast_log(LOG_DEBUG,"Adding OSP Token: %s\n", p->options->osptoken);
add_header(&req, "P-OSP-Auth-Token", p->options->osptoken);
} else {
ast_log(LOG_DEBUG,"NOT Adding OSP Token\n");
}
#endif
- if (p->options && p->options->distinctive_ring && !ast_strlen_zero(p->options->distinctive_ring))
+ if (p->options && !ast_strlen_zero(p->options->distinctive_ring))
{
add_header(&req, "Alert-Info", p->options->distinctive_ring);
}
char *argv[2];
int recursive = 0;
- if (!data || ast_strlen_zero(data))
+ if (ast_strlen_zero(data))
return NULL;
if (!chan->cdr)
char *argv[2];
int recursive = 0;
- if (!data || ast_strlen_zero(data) || !value)
+ if (ast_strlen_zero(data) || !value)
return;
mydata = ast_strdupa(data);
char *family;
char *key;
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "DB requires an argument, DB(<family>/<key>)\n");
return buf;
}
char *family;
char *key;
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "DB requires an argument, DB(<family>/<key>)=<value>\n");
return;
}
char *family;
char *key;
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "DB_EXISTS requires an argument, DB(<family>/<key>)\n");
return buf;
}
int i = 0;
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, synopsis);
return "";
}
buf[0] = '\0';
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "TXTCIDNAME requires an argument (number)\n");
LOCAL_USER_REMOVE(u);
return buf;
static void builtin_function_env_write(struct ast_channel *chan, char *cmd, char *data, const char *value)
{
- if (data && !ast_strlen_zero(data)) {
- if (value && !ast_strlen_zero(value)) {
+ if (!ast_strlen_zero(data)) {
+ if (!ast_strlen_zero(value)) {
setenv(data, value, 1);
} else {
unsetenv(data);
char varname[256];
char *group;
- if (data && !ast_strlen_zero(data)) {
+ if (!ast_strlen_zero(data)) {
snprintf(varname, sizeof(varname), "%s_%s", GROUP_CATEGORY_PREFIX, data);
} else {
ast_copy_string(varname, GROUP_CATEGORY_PREFIX, sizeof(varname));
{
char grpcat[256];
- if (data && !ast_strlen_zero(data)) {
+ if (!ast_strlen_zero(data)) {
snprintf(grpcat, sizeof(grpcat), "%s@%s", value, data);
} else {
ast_copy_string(grpcat, value, sizeof(grpcat));
iftrue = strsep(&data, ":");
iffalse = data;
- if (!expr || ast_strlen_zero(expr) || !(iftrue || iffalse)) {
+ if (ast_strlen_zero(expr) || !(iftrue || iffalse)) {
ast_log(LOG_WARNING, "Syntax IFTIME(<timespec>?[<true>][:<false>])\n");
return NULL;
}
iftrue = strsep(&data, ":");
iffalse = data;
- if (!expr || ast_strlen_zero(expr) || !(iftrue || iffalse)) {
+ if (ast_strlen_zero(expr) || !(iftrue || iffalse)) {
ast_log(LOG_WARNING, "Syntax IF(<expr>?[<true>][:<false>])\n");
return NULL;
}
varname = strsep(&data, "=");
val = data;
- if (!varname || ast_strlen_zero(varname) || !val) {
+ if (ast_strlen_zero(varname) || !val) {
ast_log(LOG_WARNING, "Syntax SET(<varname>=[<value>])\n");
return NULL;
}
char *mvalue1, *mvalue2=NULL, *mtype_of_result;
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Syntax: Math(<number1><op><number 2>[,<type_of_result>]) - missing argument!\n");
return NULL;
}
{
char md5[33];
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Syntax: MD5(<data>) - missing argument!\n");
return NULL;
}
epoch = strsep(&format, "|");
timezone = strsep(&format, "|");
- if (!epoch || ast_strlen_zero(epoch) || !sscanf(epoch, "%ld", &epochi)) {
+ if (ast_strlen_zero(epoch) || !sscanf(epoch, "%ld", &epochi)) {
struct timeval tv = ast_tvnow();
epochi = tv.tv_sec;
}
{
memset(buf, 0, len);
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "EVAL requires an argument: EVAL(<string>)\n");
return buf;
}
{
char uri[BUFSIZ];
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Syntax: URIENCODE(<data>) - missing argument!\n");
return NULL;
}
/*!\brief builtin_function_uridecode: Decode URI according to RFC 2396 */
static char *builtin_function_uridecode(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
{
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Syntax: URIDECODE(<data>) - missing argument!\n");
return NULL;
}
data = c;
data = ast_skip_blanks(data);
}
- if (!data || ast_strlen_zero(data))
+ if (ast_strlen_zero(data))
return 0;
if (matches_keyword(data, "switch")) {
fillin = NULL;
if (cmd == DUNDI_COMMAND_EIDQUERY) {
res = dundi_answer_entity(trans, &ies, ies.called_context);
} else {
- if (!ies.called_number || ast_strlen_zero(ies.called_number)) {
+ if (ast_strlen_zero(ies.called_number)) {
/* They're not permitted to access that context */
dundi_ie_append_cause(&ied, DUNDI_IE_CAUSE, DUNDI_CAUSE_GENERAL, "Invalid or missing number/entity");
dundi_send(trans, resp, 0, 1, &ied);
dep_warning = 1;
}
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "DUNDiLookup requires an argument (number)\n");
LOCAL_USER_REMOVE(u);
return 0;
}
}
- if (!context || ast_strlen_zero(context))
+ if (ast_strlen_zero(context))
context = "e164";
results = dundi_lookup(dr, MAX_RESULTS, NULL, context, num, bypass);
buf[0] = '\0';
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "DUNDILOOKUP requires an argument (number)\n");
LOCAL_USER_REMOVE(u);
return buf;
}
}
- if (!context || ast_strlen_zero(context))
+ if (ast_strlen_zero(context))
context = "e164";
results = dundi_lookup(dr, MAX_RESULTS, NULL, context, num, bypass);
/* If done as a macro, use macro extension */
if (!strcasecmp(exten, "s")) {
exten = pbx_builtin_getvar_helper(chan, "ARG1");
- if (!exten || ast_strlen_zero(exten))
+ if (ast_strlen_zero(exten))
exten = chan->macroexten;
- if (!exten || ast_strlen_zero(exten))
+ if (ast_strlen_zero(exten))
exten = chan->exten;
- if (!exten || ast_strlen_zero(exten)) {
+ if (ast_strlen_zero(exten)) {
ast_log(LOG_WARNING, "Called in Macro mode with no ARG1 or MACRO_EXTEN?\n");
return -1;
}
}
- if (!data || ast_strlen_zero(data))
+ if (ast_strlen_zero(data))
data = "e164";
} else {
- if (!data || ast_strlen_zero(data))
+ if (ast_strlen_zero(data))
data = context;
}
res = dundi_lookup(results, MAX_RESULTS, chan, data, exten, 0);
/* If done as a macro, use macro extension */
if (!strcasecmp(exten, "s")) {
exten = pbx_builtin_getvar_helper(chan, "ARG1");
- if (!exten || ast_strlen_zero(exten))
+ if (ast_strlen_zero(exten))
exten = chan->macroexten;
- if (!exten || ast_strlen_zero(exten))
+ if (ast_strlen_zero(exten))
exten = chan->exten;
- if (!exten || ast_strlen_zero(exten)) {
+ if (ast_strlen_zero(exten)) {
ast_log(LOG_WARNING, "Called in Macro mode with no ARG1 or MACRO_EXTEN?\n");
return -1;
}
}
- if (!data || ast_strlen_zero(data))
+ if (ast_strlen_zero(data))
data = "e164";
} else {
- if (!data || ast_strlen_zero(data))
+ if (ast_strlen_zero(data))
data = context;
}
res = dundi_lookup(results, MAX_RESULTS, chan, data, exten, 0);
pri = strchr(buf, ':');
if (!ast_strlen_zero(buf))
*newexten = buf;
- if (con && !ast_strlen_zero(con))
+ if (!ast_strlen_zero(con))
*newcontext = con;
- if (pri && !ast_strlen_zero(pri))
+ if (!ast_strlen_zero(pri))
sscanf(pri, "%d", priority);
}
table++;\
cxt = buf; \
} else cxt = NULL; \
- if (!cxt || ast_strlen_zero(cxt)) \
+ if (ast_strlen_zero(cxt)) \
cxt = context;\
- if (!table || ast_strlen_zero(table)) \
+ if (ast_strlen_zero(table)) \
table = "extensions"; \
var = realtime_switch_common(table, cxt, exten, priority, mode); \
} else \
char *stringp;
AGI agi;
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "AGI requires an argument (script)\n");
return -1;
}
stringp = rowdata;
while(stringp) {
chunk = strsep(&stringp, ";");
- if (chunk && !ast_strlen_zero(ast_strip(chunk))) {
+ if (!ast_strlen_zero(ast_strip(chunk))) {
if (prev) {
prev->next = ast_variable_new(coltitle, chunk);
if (prev->next)
stringp = rowdata;
while(stringp) {
chunk = strsep(&stringp, ";");
- if (chunk && !ast_strlen_zero(ast_strip(chunk))) {
+ if (!ast_strlen_zero(ast_strip(chunk))) {
if (initfield && !strcmp(initfield, coltitle))
ast_category_rename(cat, chunk);
var = ast_variable_new(coltitle, chunk);
goto_on_transfer = pbx_builtin_getvar_helper(chan, "GOTO_ON_BLINDXFR");
- if (goto_on_transfer && !ast_strlen_zero(goto_on_transfer) && (xferchan = ast_channel_alloc(0))) {
+ if (!ast_strlen_zero(goto_on_transfer) && (xferchan = ast_channel_alloc(0))) {
char *x;
struct ast_frame *f;
}
- if (dynamic_features && !ast_strlen_zero(dynamic_features)) {
+ if (!ast_strlen_zero(dynamic_features)) {
char *tmp = ast_strdupa(dynamic_features);
char *tok;
char *id = astman_get_header(m,"ActionID");
char idText[256] = "";
- if (id && !ast_strlen_zero(id))
+ if (!ast_strlen_zero(id))
snprintf(idText,256,"ActionID: %s\r\n",id);
astman_send_ack(s, m, "Parked calls will follow");
memset(monitor, 0, sizeof(struct ast_channel_monitor));
/* Determine file names */
- if (fname_base && !ast_strlen_zero(fname_base)) {
+ if (!ast_strlen_zero(fname_base)) {
int directory = strchr(fname_base, '/') ? 1 : 0;
/* try creating the directory just in case it doesn't exist */
if (directory) {
monitor->stop = ast_monitor_stop;
/* Determine file format */
- if (format_spec && !ast_strlen_zero(format_spec)) {
+ if (!ast_strlen_zero(format_spec)) {
monitor->format = strdup(format_spec);
} else {
monitor->format = strdup("wav");
/* Set the execute application */
execute = pbx_builtin_getvar_helper(chan, "MONITOR_EXEC");
- if (!execute || ast_strlen_zero(execute)) {
+ if (ast_strlen_zero(execute)) {
execute = "nice -n 19 soxmix";
delfiles = 1;
}
execute_args = pbx_builtin_getvar_helper(chan, "MONITOR_EXEC_ARGS");
- if (!execute_args || ast_strlen_zero(execute_args)) {
+ if (ast_strlen_zero(execute_args)) {
execute_args = "";
}
int ast_monitor_change_fname(struct ast_channel *chan, const char *fname_base, int need_lock)
{
char tmp[256];
- if ((!fname_base) || (ast_strlen_zero(fname_base))) {
+ if (ast_strlen_zero(fname_base)) {
ast_log(LOG_WARNING, "Cannot change monitor filename of channel %s to null", chan->name);
return -1;
}
int res = 0;
/* Parse arguments. */
- if (data && !ast_strlen_zero((char*)data)) {
+ if (!ast_strlen_zero((char*)data)) {
arg = ast_strdupa((char*)data);
format = arg;
fname_base = strchr(arg, '|');
char *mix = astman_get_header(m, "Mix");
char *d;
- if ((!name) || (ast_strlen_zero(name))) {
+ if (ast_strlen_zero(name)) {
astman_send_error(s, m, "No channel specified");
return 0;
}
return 0;
}
- if ((!fname) || (ast_strlen_zero(fname))) {
+ if (ast_strlen_zero(fname)) {
/* No filename base specified, default to channel name as per CLI */
fname = malloc (FILENAME_MAX);
if (!fname) {
struct ast_channel *c = NULL;
char *name = astman_get_header(m, "Channel");
int res;
- if ((!name) || (ast_strlen_zero(name))) {
+ if (ast_strlen_zero(name)) {
astman_send_error(s, m, "No channel specified");
return 0;
}
struct ast_channel *c = NULL;
char *name = astman_get_header(m, "Channel");
char *fname = astman_get_header(m, "File");
- if ((!name) || (ast_strlen_zero(name))) {
+ if (ast_strlen_zero(name)) {
astman_send_error(s, m, "No channel specified");
return 0;
}
- if ((!fname)||(ast_strlen_zero(fname))) {
+ if (ast_strlen_zero(fname)) {
astman_send_error(s, m, "No filename specified");
return 0;
}
/* Look for extra arguments and add them to the list */
strncpy(xargs, class->args, sizeof(xargs) - 1);
argptr = xargs;
- while (argptr && !ast_strlen_zero(argptr)) {
+ while (!ast_strlen_zero(argptr)) {
argv[argc++] = argptr;
argptr = strchr(argptr, ',');
if (argptr) {
/* Format arguments for argv vector */
strncpy(xargs, class->args, sizeof(xargs) - 1);
argptr = xargs;
- while (argptr && !ast_strlen_zero(argptr)) {
+ while (!ast_strlen_zero(argptr)) {
argv[argc++] = argptr;
argptr = strchr(argptr, ' ');
if (argptr) {
static int moh2_exec(struct ast_channel *chan, void *data)
{
- if (!data || ast_strlen_zero(data)) {
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "SetMusicOnHold requires an argument (class)\n");
return -1;
}
{
struct mohclass *mohclass;
- if (!class || ast_strlen_zero(class))
+ if (ast_strlen_zero(class))
class = chan->musicclass;
- if (!class || ast_strlen_zero(class))
+ if (ast_strlen_zero(class))
class = "default";
ast_mutex_lock(&moh_lock);
mohclass = get_mohbyname(class);