mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
Merge branch 'maint-0.4.7'
This commit is contained in:
commit
713efae94b
@ -2233,6 +2233,30 @@ connection_connect_sockaddr,(connection_t *conn,
|
|||||||
tor_socket_strerror(errno));
|
tor_socket_strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef IP_BIND_ADDRESS_NO_PORT
|
||||||
|
static int try_ip_bind_address_no_port = 1;
|
||||||
|
if (bindaddr && try_ip_bind_address_no_port &&
|
||||||
|
setsockopt(s, SOL_IP, IP_BIND_ADDRESS_NO_PORT, &(int){1}, sizeof(int))) {
|
||||||
|
if (errno == EINVAL) {
|
||||||
|
log_notice(LD_NET, "Tor was built with support for "
|
||||||
|
"IP_BIND_ADDRESS_NO_PORT, but the current kernel "
|
||||||
|
"doesn't support it. This might cause Tor to run out "
|
||||||
|
"of ephemeral ports more quickly.");
|
||||||
|
try_ip_bind_address_no_port = 0;
|
||||||
|
} else {
|
||||||
|
log_warn(LD_NET, "Error setting IP_BIND_ADDRESS_NO_PORT on new "
|
||||||
|
"connection: %s", tor_socket_strerror(errno));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* From ip(7): Inform the kernel to not reserve an ephemeral port when using
|
||||||
|
* bind(2) with a port number of 0. The port will later be automatically
|
||||||
|
* chosen at connect(2) time, in a way that allows sharing a source port as
|
||||||
|
* long as the 4-tuple is unique.
|
||||||
|
*
|
||||||
|
* This is needed for relays using OutboundBindAddresses because the port
|
||||||
|
* value in the bind address is set to 0. */
|
||||||
#ifdef IP_BIND_ADDRESS_NO_PORT
|
#ifdef IP_BIND_ADDRESS_NO_PORT
|
||||||
static int try_ip_bind_address_no_port = 1;
|
static int try_ip_bind_address_no_port = 1;
|
||||||
if (bindaddr && try_ip_bind_address_no_port &&
|
if (bindaddr && try_ip_bind_address_no_port &&
|
||||||
|
Loading…
Reference in New Issue
Block a user