commit - 04e4e99327c1aa645f591ea2a47ac2f4c13fe4c1
commit + 3b486b32233bf7e55e12e568e2c799990abf9e37
blob - 14d0338cf00535a9a279b66898aceaaa98565666
blob + 4122004350c48f4836092646efbd80ac564d455d
--- web/http.c
+++ web/http.c
memset(req, 0, sizeof(*req));
- line = req->buf;
-
while (!done) {
if (req->len == sizeof(req->buf)) {
log_warnx("not enough space");
req->len += nr;
while ((endln = memmem(req->buf, req->len, "\r\n", 2))) {
+ line = req->buf;
if (endln == req->buf)
done = 1;
len = endln - req->buf + 2;
memmove(req->buf, req->buf + len, req->len - len);
req->len -= len;
+ if (done)
+ break;
}
}
{
size_t left;
ssize_t nr;
+
+ /* drop \r\n */
+ if (req->len > 2)
+ req->len -= 2;
if (req->clen > sizeof(req->buf) - 1)
return -1;
return 0;
}
if (req->len > req->clen) {
- log_warnx("got more data than what advertised!");
+ log_warnx("got more data than what advertised! (%zu vs %zu)",
+ req->len, req->clen);
return -1;
}