mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
set SO_REUSEADDR before we bind, not after
resolves bug 4950 (fixes a bug on commit aba7bb705a
from #2850)
This commit is contained in:
parent
efb60e2132
commit
247a21379a
6
changes/bug4950
Normal file
6
changes/bug4950
Normal file
@ -0,0 +1,6 @@
|
||||
o Major bugfixes:
|
||||
- Set the SO_REUSEADDR socket option before we call bind() on outgoing
|
||||
connections. This change should allow busy exit relays to stop
|
||||
running out of available sockets as quickly. Fixes bug 4950;
|
||||
bugfix on 0.2.2.26-beta.
|
||||
|
@ -1338,6 +1338,8 @@ connection_connect(connection_t *conn, const char *address,
|
||||
return -1;
|
||||
}
|
||||
|
||||
make_socket_reuseable(s);
|
||||
|
||||
if (options->OutboundBindAddress && !tor_addr_is_loopback(addr)) {
|
||||
struct sockaddr_in ext_addr;
|
||||
|
||||
@ -1372,8 +1374,6 @@ connection_connect(connection_t *conn, const char *address,
|
||||
log_debug(LD_NET, "Connecting to %s:%u.",
|
||||
escaped_safe_str_client(address), port);
|
||||
|
||||
make_socket_reuseable(s);
|
||||
|
||||
if (connect(s, dest_addr, (socklen_t)dest_addr_len) < 0) {
|
||||
int e = tor_socket_errno(s);
|
||||
if (!ERRNO_IS_CONN_EINPROGRESS(e)) {
|
||||
|
Loading…
Reference in New Issue
Block a user