diff options
Diffstat (limited to 'hittpd.c')
-rw-r--r-- | hittpd.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/hittpd.c b/hittpd.c index 0b8722b..3264c02 100644 --- a/hittpd.c +++ b/hittpd.c @@ -53,7 +53,7 @@ #include "http_parser.h" struct conn_data { - enum { NONE, HOST, IMS, RANGE, OTHER, BAD_REQUEST, SENDING } state; + enum { NONE, HOST, IMS, RANGE, OTHER, SENDING } state; char *host; char *ims; char *path; @@ -101,9 +101,6 @@ on_header_field(http_parser *p, const char *s, size_t l) { struct conn_data *data = p->data; - if (data->state == BAD_REQUEST) - return 0; - if (l == 4 && strncasecmp(s, "host", l) == 0) data->state = HOST; else if (l == 17 && strncasecmp(s, "if-modified-since", l) == 0) @@ -472,14 +469,14 @@ on_message_complete(http_parser *p) { char d = (c1 << 4) | c2; if (d == 0 || d == '/') { - data->state = BAD_REQUEST; + send_error(p, 400, "Bad Request"); return 0; } *t++ = d; i += 2; } else if (s[i] == 0) { - data->state = BAD_REQUEST; + send_error(p, 400, "Bad Request"); return 0; } else { *t++ = s[i]; |