app.c: Throw warnings for nonexistent options

Currently, Asterisk doesn't throw warnings if options
are passed into applications that don't accept them.
This can confuse users if they're unaware that they
are doing something wrong.

This adds an additional check to parse_options so that
a warning is thrown anytime an option is parsed that
doesn't exist in the parsing application, so that users
are notified of the invalid usage.

ASTERISK-29801 #close

Change-Id: Id029274a57135caca193c913307a63fd75e24679
This commit is contained in:
Naveen Albert 2021-12-13 00:08:26 +00:00 committed by Kevin Harwell
parent a4c42e70c1
commit 030f7d4131
1 changed files with 3 additions and 0 deletions

View File

@ -2937,6 +2937,9 @@ static int parse_options(const struct ast_app_option *options, void *_flags, cha
} else if (argloc) {
args[argloc - 1] = "";
}
if (!options[curarg].flag) {
ast_log(LOG_WARNING, "Unrecognized option: '%c'\n", curarg);
}
if (flaglen == 32) {
ast_set_flag(flags, options[curarg].flag);
} else {