diff options
Diffstat (limited to 'http.h')
-rw-r--r-- | http.h | 33 |
1 files changed, 33 insertions, 0 deletions
@@ -1,6 +1,31 @@ #ifndef HTTP_H #define HTTP_H +struct span +{ + int start; + int length; +}; + +struct header +{ + struct span name; + struct span value; +}; + +struct request +{ + int (* step)(struct request *); + char * data; + int length; + int position; + struct span method; + struct span path; + struct span version; + struct header * headers; + struct span body; +}; + enum status { STATUS_OK = 200, @@ -14,8 +39,16 @@ enum status extern const char * status_str[]; +struct request * new_request(void); +void free_request(struct request *); + int respond_only_status(int, enum status); int respond_with_body(int, enum status, const char *, int); + int collect_request(int, char **); +int parse_method(struct request *); +int parse_path(struct request *); +int parse_version(struct request *); + #endif // HTTP_H |