if(!p || p - c->buffer >= c->buflen)
return 0;
- while(p = memchr(p + 1, '\n', c->buflen - (p + 1 - c->buffer))) {
- if(p[-1] == '\n')
+ while((p = memchr(p + 1, '\n', c->buflen - (p + 1 - c->buffer)))) {
+ if(p > c->buffer + 3 && !memcmp(p - 3, "\r\n\r\n", 4))
break;
}
c->allow_request = ID;
return replen;
} else {
+ p = memchr(c->buffer, '\n', c->buflen);
+ p[-1] = 0;
logger(LOG_ERR, "Proxy request rejected: %s", c->buffer + 9);
return false;
}