res_ael: Create consistent label names across reloads

Reset the internal counter that the AEL2 compiler uses for unique label
names before compiling. This keeps dialplan labels consistent across
reloads assuming the AEL2 has not changed.

ASTERISK-17799 #close
Reported by: Kirill Katsnelson

Change-Id: I30b3cc887d1ee0644d3f341e2fef16f525d7fae5
This commit is contained in:
Sean Bright 2019-04-11 16:48:49 -04:00
parent fbed32a1a5
commit 116dc9c9b3
1 changed files with 4 additions and 1 deletions

View File

@ -2924,7 +2924,7 @@ void ael2_semantic_check(pval *item, int *arg_errs, int *arg_warns, int *arg_not
/* "CODE" GENERATOR -- Convert the AEL representation to asterisk extension language */
/* =============================================================================================== */
static int control_statement_count = 0;
static int control_statement_count;
struct ael_priority *new_prio(void)
{
@ -4427,6 +4427,9 @@ int ast_compile_ael2(struct ast_context **local_contexts, struct ast_hashtab *lo
struct ael_extension *exten;
struct ael_extension *exten_list = 0;
/* Reset the counter so that we get consistent labels between reloads */
control_statement_count = 0;
for (p=root; p; p=p->next ) { /* do the globals first, so they'll be there
when we try to eval them */
switch (p->type) {