commit 9369152aae9527cc3764cac8688f258b11bd503d
parent 0d9dc13e087c01550e5d237f298d8a5de5994df0
Author: rl1987 <rl1987@sdf.lonestar.org>
Date: Mon, 3 Dec 2018 14:28:32 +0200
Check that new listener connection is actually listening
Diffstat:
1 file changed, 13 insertions(+), 0 deletions(-)
diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c
@@ -1460,6 +1460,19 @@ connection_listener_new(const struct sockaddr *listensockaddr,
tor_socket_strerror(tor_socket_errno(s)));
goto err;
}
+
+#ifndef __APPLE__
+ int value;
+ socklen_t len = sizeof(value);
+
+ if (!getsockopt(s, SOL_SOCKET, SO_ACCEPTCONN, &value, &len)) {
+ if (value == 0) {
+ log_err(LD_NET, "Could not listen on %s - "
+ "getsockopt(.,SO_ACCEPTCONN,.) yields 0.", address);
+ goto err;
+ }
+ }
+#endif /* __APPLE__ */
#endif /* defined(HAVE_SYS_UN_H) */
} else {
log_err(LD_BUG, "Got unexpected address family %d.",