X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=lib%2Freq.h;h=054d3c1d2e94859413b58c134421f7bf7d305481;hb=35737971905d2247746bc81e0da851744cc49902;hp=b566dd24a1256859b7b0565ccdae1322b9d90c3f;hpb=337333968e3d06cf5f1fa5198eeba3121aee467a;p=ashd.git diff --git a/lib/req.h b/lib/req.h index b566dd2..054d3c1 100644 --- a/lib/req.h +++ b/lib/req.h @@ -1,16 +1,30 @@ #ifndef _LIB_HTREQ_H #define _LIB_HTREQ_H -struct htreq { - char *method, *url, *ver; - char *restbuf, *rest; +#include + +struct hthead { + char *method, *url, *ver, *msg; + int code; + char *rest; char ***headers; int noheaders; }; -struct htreq *mkreq(char *method, char *url, char *ver); -void freereq(struct htreq *req); -void reqpreheader(struct htreq *req, char *name, char *val); -void reqappheader(struct htreq *req, char *name, char *val); +struct hthead *mkreq(char *method, char *url, char *ver); +struct hthead *mkresp(int code, char *msg, char *ver); +void freehthead(struct hthead *head); +char *getheader(struct hthead *head, char *name); +void headpreheader(struct hthead *head, const char *name, const char *val); +void headappheader(struct hthead *head, const char *name, const char *val); +void headrmheader(struct hthead *head, const char *name); +int sendreq2(int sock, struct hthead *req, int fd, int flags); +int sendreq(int sock, struct hthead *req, int fd); +int recvreq(int sock, struct hthead **reqp); +void replrest(struct hthead *head, char *rest); +int parseheaders(struct hthead *head, FILE *in); +struct hthead *parseresponse(FILE *in); +int writeresp(FILE *out, struct hthead *resp); +char *unquoteurl(char *in); #endif