Merge remote-tracking branch 'tor-github/pr/560'

This commit is contained in:
Nick Mathewson 2018-12-05 08:13:02 -05:00
commit 4c81ab5914
2 changed files with 24 additions and 3 deletions

View File

@ -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.",
@ -2894,6 +2907,10 @@ retry_all_listeners(smartlist_t *new_conns, int close_all_noncontrol)
retval = -1;
#ifdef ENABLE_LISTENER_REBIND
if (smartlist_len(replacements))
log_debug(LD_NET, "%d replacements - starting rebinding loop.",
smartlist_len(replacements));
SMARTLIST_FOREACH_BEGIN(replacements, listener_replacement_t *, r) {
int addr_in_use = 0;
int skip = 0;
@ -2905,8 +2922,11 @@ retry_all_listeners(smartlist_t *new_conns, int close_all_noncontrol)
connection_listener_new_for_port(r->new_port, &skip, &addr_in_use);
connection_t *old_conn = r->old_conn;
if (skip)
if (skip) {
log_debug(LD_NET, "Skipping creating new listener for %s:%d",
old_conn->address, old_conn->port);
continue;
}
connection_close_immediate(old_conn);
connection_mark_for_close(old_conn);

View File

@ -19,9 +19,10 @@ def fail(msg):
def try_connecting_to_socksport():
socks_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if socks_socket.connect_ex(('127.0.0.1', socks_port)):
e = socks_socket.connect_ex(('127.0.0.1', socks_port))
if e:
tor_process.terminate()
fail('Cannot connect to SOCKSPort')
fail('Cannot connect to SOCKSPort: error ' + os.strerror(e))
socks_socket.close()
def wait_for_log(s):