commit - b07d2757b848245032749fb16d7a4ab6f360d7f4
commit + 186a1eec82f03f9e24c4095c0a31f4a10de19c88
blob - 6528084bfa930cd2ef30613e9c636fd130fb0de7
blob + 92e56f67f76e65aaa37c8de91230b7ee17e21a7b
--- net.c
+++ net.c
if (!req->done_header) {
header = evbuffer_readln(src, &len, EVBUFFER_EOL_CRLF_STRICT);
- if (header == NULL && EVBUFFER_LENGTH(src) >= 1024)
- goto err;
+ if (header == NULL && EVBUFFER_LENGTH(src) >= 1024) {
+ (*bev->errorcb)(bev, EVBUFFER_READ, bev->cbarg);
+ return;
+ }
if (header == NULL)
return;
r = gemini_parse_reply(req, header, len);
free(header);
req->done_header = 1;
- if (r == 0)
- goto err;
- else if (r < 20 || r >= 30) {
+ if (r == 0) {
+ (*bev->errorcb)(bev, EVBUFFER_READ, bev->cbarg);
+ return;
+ }
+ if (r < 20 || r >= 30) {
close_conn(0, 0, req);
return;
}
break;
net_send_ui(IMSG_BUF, req->id, buf, len);
}
- return;
-
-err:
- (*bev->errorcb)(bev, EVBUFFER_READ, bev->cbarg);
}
/* called after a write has been done */