avoid gratious strlen; evbuffer_readln returns the length

This commit is contained in:
Omar Polo 2023-06-24 20:19:33 +00:00
parent a452496a96
commit da0821b6cb
1 changed files with 1 additions and 3 deletions

View File

@ -1035,7 +1035,6 @@ client_read(struct bufferevent *bev, void *d)
struct evbuffer *src = EVBUFFER_INPUT(bev); struct evbuffer *src = EVBUFFER_INPUT(bev);
const char *parse_err = "invalid request"; const char *parse_err = "invalid request";
char decoded[DOMAIN_NAME_LEN]; char decoded[DOMAIN_NAME_LEN];
size_t len;
bufferevent_disable(bev, EVBUFFER_READ); bufferevent_disable(bev, EVBUFFER_READ);
@ -1054,13 +1053,12 @@ client_read(struct bufferevent *bev, void *d)
return; return;
} }
c->req = evbuffer_readln(src, &len, EVBUFFER_EOL_CRLF_STRICT); c->req = evbuffer_readln(src, &c->reqlen, EVBUFFER_EOL_CRLF_STRICT);
if (c->req == NULL) { if (c->req == NULL) {
/* not enough data yet. */ /* not enough data yet. */
bufferevent_enable(bev, EVBUFFER_READ); bufferevent_enable(bev, EVBUFFER_READ);
return; return;
} }
c->reqlen = strlen(c->req);
if (c->reqlen > 1024+2) { if (c->reqlen > 1024+2) {
log_debug("URL too long"); log_debug("URL too long");
start_reply(c, BAD_REQUEST, "bad request"); start_reply(c, BAD_REQUEST, "bad request");