mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-14 16:33:34 +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;
|
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)
|
static char *static_callback(struct sockaddr_in *req, const char *uri, struct ast_variable *vars, int *status, char **title, int *contentlength)
|
||||||
{
|
{
|
||||||
char result[4096];
|
char result[4096];
|
||||||
@@ -298,7 +309,7 @@ static char *handle_uri(struct sockaddr_in *sin, char *uri, int *status, char **
|
|||||||
while ((val = strsep(¶ms, "&"))) {
|
while ((val = strsep(¶ms, "&"))) {
|
||||||
var = strsep(&val, "=");
|
var = strsep(&val, "=");
|
||||||
if (val)
|
if (val)
|
||||||
ast_uri_decode(val);
|
uri_decode(val);
|
||||||
else
|
else
|
||||||
val = "";
|
val = "";
|
||||||
ast_uri_decode(var);
|
ast_uri_decode(var);
|
||||||
|
Reference in New Issue
Block a user