summaryrefslogtreecommitdiffhomepage
path: root/http.h
diff options
context:
space:
mode:
Diffstat (limited to 'http.h')
-rw-r--r--http.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/http.h b/http.h
index e0d7891..4629846 100644
--- a/http.h
+++ b/http.h
@@ -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