From 8a6c9c3a761a422b050dbf8fa8723943320ca5c6 Mon Sep 17 00:00:00 2001 From: Alexander Traud Date: Mon, 2 Aug 2021 19:33:07 +0200 Subject: [PATCH] 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 --- main/pbx_include.c | 2 +- main/pbx_timing.c | 2 +- utils/extconf.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/main/pbx_include.c b/main/pbx_include.c index 1bdc39605f..188bce1ad1 100644 --- a/main/pbx_include.c +++ b/main/pbx_include.c @@ -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); } diff --git a/main/pbx_timing.c b/main/pbx_timing.c index b3ef0891ed..1f76ab81a6 100644 --- a/main/pbx_timing.c +++ b/main/pbx_timing.c @@ -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++; } diff --git a/utils/extconf.c b/utils/extconf.c index 674f5df479..afc893c48f 100644 --- a/utils/extconf.c +++ b/utils/extconf.c @@ -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); }