Dolda2000 GitWeb
/
ashd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make htparser strip the param string from the rest string.
[ashd.git]
/
src
/
htparser.c
diff --git
a/src/htparser.c
b/src/htparser.c
index
184e7b9
..
88c8e6d
100644
(file)
--- a/
src/htparser.c
+++ b/
src/htparser.c
@@
-339,7
+339,7
@@
static void serve(struct muth *muth, va_list args)
vavar(struct sockaddr_storage, name);
int cfd;
char old;
vavar(struct sockaddr_storage, name);
int cfd;
char old;
- char *hd;
+ char *hd
, *p
;
struct charbuf inbuf, outbuf;
struct hthead *req, *resp;
off_t dlen, sent;
struct charbuf inbuf, outbuf;
struct hthead *req, *resp;
off_t dlen, sent;
@@
-369,10
+369,13
@@
static void serve(struct muth *muth, va_list args)
goto out;
inbuf.b[headoff] = old;
bufeat(inbuf, headoff);
goto out;
inbuf.b[headoff] = old;
bufeat(inbuf, headoff);
- /* We strip off the leading slash from the rest string, so
- * that multiplexers can parse coherently. */
+ /* We strip off the leading slash and any param string from
+ * the rest string, so that multiplexers can parse
+ * coherently. */
if(req->rest[0] == '/')
replrest(req, req->rest + 1);
if(req->rest[0] == '/')
replrest(req, req->rest + 1);
+ if((p = strchr(req->rest, '?')) != NULL)
+ *p = 0;
/*
* Add metainformation and then send the request to the root
/*
* Add metainformation and then send the request to the root