aelparse: Accept an included context with timings.

With Asterisk 1.6.0, in the main parser for the configuration file
extensions.conf, the separator was changed from vertical bar to comma.
However, the first separator was not changed in aelparse; it still had
to be a vertical bar, and no comma was allowed.

Additionally, this change allows the vertical bar for the first and
last parameter again, even in the main parser, because the vertical bar
was still accepted for the other parameters.

ASTERISK-29540

Change-Id: I882e17c73adf4bf2f20f9046390860d04a9f8d81
This commit is contained in:
Alexander Traud 2021-08-02 19:33:07 +02:00 committed by Friendly Automation
parent 049c7c1361
commit 8a6c9c3a76
3 changed files with 4 additions and 4 deletions

View File

@ -94,7 +94,7 @@ struct ast_include *include_alloc(const char *value, const char *registrar)
new_include->rname = p;
strcpy(p, value);
/* Strip off timing info, and process if it is there */
if ((c = strchr(p, ',')) ) {
if ( (c = strchr(p, '|')) || (c = strchr(p, ',')) ) {
*c++ = '\0';
new_include->hastime = ast_build_timing(&(new_include->timing), c);
}

View File

@ -217,7 +217,7 @@ int ast_build_timing(struct ast_timing *i, const char *info_in)
/* count the number of fields in the timespec */
for (j = 0, num_fields = 1; info[j] != '\0'; j++) {
if (info[j] == ',') {
if (info[j] == '|' || info[j] == ',') {
last_sep = j;
num_fields++;
}

View File

@ -3822,7 +3822,7 @@ int ast_build_timing(struct ast_timing *i, const char *info_in)
/* count the number of fields in the timespec */
for (j = 0, num_fields = 1; info[j] != '\0'; j++) {
if (info[j] == ',') {
if (info[j] == '|' || info[j] == ',') {
last_sep = j;
num_fields++;
}
@ -4525,7 +4525,7 @@ static int ast_context_add_include2(struct ast_context *con, const char *value,
new_include->rname = p;
strcpy(p, value);
/* Strip off timing info, and process if it is there */
if ( (c = strchr(p, '|')) ) {
if ( (c = strchr(p, '|')) || (c = strchr(p, ',')) ) {
*c++ = '\0';
new_include->hastime = ast_build_timing(&(new_include->timing), c);
}