diff options
Diffstat (limited to 'main/cel.c')
-rw-r--r-- | main/cel.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/main/cel.c b/main/cel.c index 93655c741..0c1e37b68 100644 --- a/main/cel.c +++ b/main/cel.c @@ -284,7 +284,7 @@ static struct aco_type *general_options[] = ACO_TYPES(&general_option); * \brief Map of ast_cel_event_type to strings */ static const char * const cel_event_types[CEL_MAX_EVENT_IDS] = { - [0] = "ALL", + [AST_CEL_ALL] = "ALL", [AST_CEL_CHANNEL_START] = "CHAN_START", [AST_CEL_CHANNEL_END] = "CHAN_END", [AST_CEL_ANSWER] = "ANSWER", @@ -524,16 +524,13 @@ enum ast_cel_event_type ast_cel_str_to_event_type(const char *name) unsigned int i; for (i = 0; i < ARRAY_LEN(cel_event_types); i++) { - if (!cel_event_types[i]) { - continue; - } - - if (!strcasecmp(name, cel_event_types[i])) { + if (cel_event_types[i] && !strcasecmp(name, cel_event_types[i])) { return i; } } - return -1; + ast_log(LOG_ERROR, "Unknown event name '%s'\n", name); + return AST_CEL_INVALID_VALUE; } static int ast_cel_track_event(enum ast_cel_event_type et) @@ -563,11 +560,10 @@ static int events_handler(const struct aco_option *opt, struct ast_variable *var event_type = ast_cel_str_to_event_type(cur_event); - if (event_type == 0) { + if (event_type == AST_CEL_ALL) { /* All events */ cfg->events = (int64_t) -1; - } else if (event_type == -1) { - ast_log(LOG_ERROR, "Unknown event name '%s'\n", cur_event); + } else if (event_type == AST_CEL_INVALID_VALUE) { return -1; } else { cfg->events |= ((int64_t) 1 << event_type); |