diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2011-01-07 18:23:52 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2011-01-07 18:23:52 +0000 |
commit | b2a70b4065f1baf9f7c7b88127780aeb6bd94b0e (patch) | |
tree | 0d953494dfa5f2bfff3e9cf7a9de17fb1ce40d9d /funcs | |
parent | 3eec341083bef557ebc0706ee1ecb21af05a9494 (diff) |
Oops, missed the actual decoding part.
(closes issue #18046)
Reported by: wdoekes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@301008 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'funcs')
-rw-r--r-- | funcs/func_curl.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/funcs/func_curl.c b/funcs/func_curl.c index 3f314fd3f..0795944ca 100644 --- a/funcs/func_curl.c +++ b/funcs/func_curl.c @@ -654,6 +654,22 @@ static int acf_curl_helper(struct ast_channel *chan, const char *cmd, char *info if (!piece) { piece = ""; } + /* Do this before the decode, because if something has encoded + * a literal plus-sign, we don't want to translate that to a + * space. */ + if (hashcompat == HASHCOMPAT_LEGACY) { + int i; + for (i = 0; name[i]; i++) { + if (name[i] == '+') { + name[i] = ' '; + } + } + for (i = 0; piece[i]; i++) { + if (piece[i] == '+') { + piece[i] = ' '; + } + } + } ast_uri_decode(piece); ast_uri_decode(name); ast_str_append(&fields, 0, "%s%s", rowcount ? "," : "", name); |