#ifndef __HTTP_REQUEST_H__ #define __HTTP_REQUEST_H__ #define HTTP_REQ_OPTIONS 0 #define HTTP_REQ_GET 1 #define HTTP_REQ_HEAD 2 #define HTTP_REQ_POST 3 #define HTTP_REQ_PUT 4 #define HTTP_REQ_DELETE 5 #define HTTP_REQ_TRACE 6 #define HTTP_REQ_CONNECT 7 extern char httpRequest[8][8]; typedef struct { char * method; char * requestUri; char * httpVersion; } tRequestLine; typedef struct { char * key; char * value; } tHttpHeaderLine; typedef struct { tRequestLine req; tHttpHeaderLine * headers; unsigned int headersCount; unsigned char bodyLength; } tHttpHeader; typedef struct { tHttpHeader header; unsigned int length; char * body; } tHttpRequest; int getHttpRequest(char **, unsigned int *, tHttpRequest *); void freeHttpRequest(tHttpRequest *); void freeHttpHeader(tHttpHeader *); unsigned char httpHeaderIsStarted(tHttpHeader *); int httpHeaderIsComplete(tHttpHeader *); int httpHeaderGet(char **, unsigned int *, tHttpHeader *); void httpHeaderParseRequestLine(tHttpHeader *, const char *, unsigned int); #endif // __HTTP_REQUEST_H__