diff --git a/adsbus/incoming.c b/adsbus/incoming.c index c8ae367..48dcbfd 100644 --- a/adsbus/incoming.c +++ b/adsbus/incoming.c @@ -79,8 +79,6 @@ static void incoming_handler(struct peer *peer) { local_hbuf, local_sbuf, peer_hbuf, peer_sbuf); - socket_connected_init(fd); - if (!incoming_hello(fd, incoming)) { fprintf(stderr, "I %s: Error writing greeting\n", incoming->id); assert(!close(fd)); diff --git a/adsbus/socket.c b/adsbus/socket.c index 0c37ceb..5e34ccb 100644 --- a/adsbus/socket.c +++ b/adsbus/socket.c @@ -17,6 +17,10 @@ void socket_bound_init(int fd) { // Called by transport code; safe to assume that fd is a socket int qlen = 5; assert(!setsockopt(fd, SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen))); + + // These options are inherited through accept() + // Verified by flamingcow on kernel 4.2.0 + socket_connected_init(fd); } void socket_connected_init(int fd) {