Do flow-specific setsockopt() before accept()

This commit is contained in:
Ian Gulliver
2016-02-29 22:17:37 -08:00
parent a093b8a1b6
commit b6a582e95a
8 changed files with 43 additions and 32 deletions

View File

@@ -95,7 +95,7 @@ static void incoming_listen(struct incoming *incoming) {
incoming->peer.fd = socket(addr->ai_family, addr->ai_socktype | SOCK_CLOEXEC, addr->ai_protocol);
assert(incoming->peer.fd >= 0);
socket_pre_bind_init(incoming->peer.fd);
socket_pre_bind(incoming->peer.fd);
if (bind(incoming->peer.fd, addr->ai_addr, addr->ai_addrlen) != 0) {
fprintf(stderr, "I %s: Failed to bind to %s/%s: %s\n", incoming->id, hbuf, sbuf, strerror(errno));
@@ -103,7 +103,9 @@ static void incoming_listen(struct incoming *incoming) {
continue;
}
socket_bound_init(incoming->peer.fd);
socket_pre_listen(incoming->peer.fd);
// Options are inherited through accept()
flow_socket_connected(incoming->peer.fd, incoming->flow);
assert(listen(incoming->peer.fd, 255) == 0);
break;