mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 08:13:22 +00:00
introduce uri_decode() so that '+' are translated into ' '
(e.g. browsers do this when they encode input strings from a form). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45474 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
13
main/http.c
13
main/http.c
@@ -99,6 +99,17 @@ static char *ftype2mtype(const char *ftype, char *wkspace, int wkspacelen)
|
||||
return wkspace;
|
||||
}
|
||||
|
||||
/* like ast_uri_decode, but replace '+' with ' ' */
|
||||
static char *uri_decode(char *buf)
|
||||
{
|
||||
char *c;
|
||||
ast_uri_decode(buf);
|
||||
for (c = buf; *c; c++) {
|
||||
if (*c == '+')
|
||||
*c = ' ';
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
static char *static_callback(struct sockaddr_in *req, const char *uri, struct ast_variable *vars, int *status, char **title, int *contentlength)
|
||||
{
|
||||
char result[4096];
|
||||
@@ -298,7 +309,7 @@ static char *handle_uri(struct sockaddr_in *sin, char *uri, int *status, char **
|
||||
while ((val = strsep(¶ms, "&"))) {
|
||||
var = strsep(&val, "=");
|
||||
if (val)
|
||||
ast_uri_decode(val);
|
||||
uri_decode(val);
|
||||
else
|
||||
val = "";
|
||||
ast_uri_decode(var);
|
||||
|
Reference in New Issue
Block a user