mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Write a comment to explain may_need_rebind condition
This commit is contained in:
@@ -2797,6 +2797,15 @@ retry_listener_ports(smartlist_t *old_conns,
|
||||
break;
|
||||
}
|
||||
#ifdef ENABLE_LISTENER_REBIND
|
||||
/* Rebinding may be needed if all of the following are true:
|
||||
* 1) Address family is the same in old and new listeners.
|
||||
* 2) Port number matches exactly (numeric value is the same).
|
||||
* 3) *One* of listeners (either old one or new one) has a
|
||||
* wildcard IP address (0.0.0.0 or [::]).
|
||||
*
|
||||
* These are the exact conditions for a first bind() syscall
|
||||
* to fail with EADDRINUSE.
|
||||
*/
|
||||
const int may_need_rebind =
|
||||
tor_addr_family(&wanted->addr) == tor_addr_family(&conn->addr) &&
|
||||
port_matches_exact && bool_neq(tor_addr_is_null(&wanted->addr),
|
||||
|
||||
Reference in New Issue
Block a user