add libhttpd
This commit is contained in:
parent
b6afd33e2f
commit
9df487d720
19 changed files with 2722 additions and 0 deletions
39
src/libhttpd/query.c
Normal file
39
src/libhttpd/query.c
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <httpd.h>
|
||||
|
||||
/*
|
||||
* parse a search string of the form
|
||||
* tag=val&tag1=val1...
|
||||
*/
|
||||
HSPairs*
|
||||
hparsequery(HConnect *c, char *search)
|
||||
{
|
||||
HSPairs *q;
|
||||
char *tag, *val, *s;
|
||||
|
||||
while((s = strchr(search, '?')) != nil)
|
||||
search = s + 1;
|
||||
s = search;
|
||||
while((s = strchr(s, '+')) != nil)
|
||||
*s++ = ' ';
|
||||
q = nil;
|
||||
while(*search){
|
||||
tag = search;
|
||||
while(*search != '='){
|
||||
if(*search == '\0')
|
||||
return q;
|
||||
search++;
|
||||
}
|
||||
*search++ = 0;
|
||||
val = search;
|
||||
while(*search != '&'){
|
||||
if(*search == '\0')
|
||||
return hmkspairs(c, hurlunesc(c, tag), hurlunesc(c, val), q);
|
||||
search++;
|
||||
}
|
||||
*search++ = '\0';
|
||||
q = hmkspairs(c, hurlunesc(c, tag), hurlunesc(c, val), q);
|
||||
}
|
||||
return q;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue