3 char* estrdup(char *s);
5 void nstrcpy(char *to, char *from, int n);
7 Key* addkey(Key *h, char *key, char *val);
8 Key* delkey(Key *h, char *key);
9 Key* getkey(Key *h, char *key);
10 char* lookkey(Key *k, char *key);
11 Key* parsehdr(char *s);
12 char* unquote(char *s, char **ps);
15 #pragma varargck type "U" Url*
16 #pragma varargck type "E" Str2
17 #pragma varargck type "N" char*
18 #pragma varargck type "]" char*
25 Url* url(char *s, Url *b);
27 int matchurl(Url *u, Url *s);
31 int buread(Buq *q, void *v, int l);
32 int buwrite(Buq *q, void *v, int l);
33 void buclose(Buq *q, char *error);
34 Buq* bualloc(int limit);
37 void bureq(Buq *q, Req *r);
38 void buflushreq(Buq *q, Req *r);
41 int authenticate(Url *u, Url *ru, char *method, char *s);
42 void flushauth(Url *u, char *t);
43 void http(char *m, Url *u, Key *shdr, Buq *qbody, Buq *qpost);