diff options
author | Kevin P. Fleming <kpfleming@digium.com> | 2010-03-15 22:48:38 +0000 |
---|---|---|
committer | Kevin P. Fleming <kpfleming@digium.com> | 2010-03-15 22:48:38 +0000 |
commit | 43d922b5a629a7d7c873a79e80d1f534f1b0cbb2 (patch) | |
tree | 1fbf016e8483f9f2b0f53c2966027ec62ca0b4a6 /res/res_fax.c | |
parent | ce4086bbdcb6843d50cca6c3b2dbe8d8516831e0 (diff) |
Improve handling of values supplied to FAXOPT(ecm).
Previously, values that began with whitespace were silently treated as 'no',
and all non-'yes' values were also treated as 'no'. Now the supplied value
is specifically checked for a 'yes' or 'no' (or equivalent) value, after skipping
leading whitespace. If the value is not valid, then a warning message is generated.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@252709 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_fax.c')
-rw-r--r-- | res/res_fax.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/res/res_fax.c b/res/res_fax.c index e37fe1ded..55e30b0c2 100644 --- a/res/res_fax.c +++ b/res/res_fax.c @@ -1775,7 +1775,14 @@ static int acf_faxopt_write(struct ast_channel *chan, const char *cmd, char *dat ast_debug(3, "channel '%s' setting FAXOPT(%s) to '%s'\n", chan->name, data, value); if (!strcasecmp(data, "ecm")) { - details->option.ecm = ast_true(value) ? 1 : 0; + const char *val = ast_skip_blanks(value); + if (ast_true(val)) { + details->option.ecm = AST_FAX_OPTFLAG_TRUE; + } else if (ast_false(val)) { + details->option.ecm = AST_FAX_OPTFLAG_FALSE; + } else { + ast_log(LOG_WARNING, "Unsupported value '%s' passed to FAXOPT(ecm).\n", value); + } } else if (!strcasecmp(data, "headerinfo")) { ast_string_field_set(details, headerinfo, value); } else if (!strcasecmp(data, "localstationid")) { |