Skip to content

Commit 3695a36

Browse files
authored
Merge pull request #53 from nirs/closed-by-peer
Fix error handling when connection closed by peer
2 parents 2e2da94 + 8fd03cc commit 3695a36

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

main.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,11 @@ static void on_accept(struct state *state, int accept_fd, interface_ref iface) {
486486
perror("read[header]");
487487
goto done;
488488
}
489+
if (header_received == 0) {
490+
// EOF according to man page of read.
491+
fprintf(stderr, "Connection closed by peer (fd %d)\n", accept_fd);
492+
goto done;
493+
}
489494
uint32_t header = ntohl(header_be);
490495
assert(header <= buf_len);
491496
ssize_t received = read(accept_fd, buf, header);
@@ -495,6 +500,7 @@ static void on_accept(struct state *state, int accept_fd, interface_ref iface) {
495500
}
496501
if (received == 0) {
497502
// EOF according to man page of read.
503+
fprintf(stderr, "Connection closed by peer (fd %d)\n", accept_fd);
498504
goto done;
499505
}
500506
assert(received == header);

0 commit comments

Comments
 (0)