summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrl1987 <rl1987@sdf.lonestar.org>2018-10-02 15:47:05 +0300
committerrl1987 <rl1987@sdf.lonestar.org>2018-10-15 16:18:31 +0300
commit9bb00a74bc4ebdb154e0f9289ed4ab362ee5c564 (patch)
tree5c14f6d665ea816c73d5ebbb82b49636d57bae67
parentdf2b46d18c4a3d6e5eb364f80111ef6c7811383c (diff)
downloadtor-9bb00a74bc4ebdb154e0f9289ed4ab362ee5c564.tar.gz
tor-9bb00a74bc4ebdb154e0f9289ed4ab362ee5c564.zip
Refrain from listener rebinding when address families differ
-rw-r--r--changes/bug279284
-rw-r--r--src/core/mainloop/connection.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/changes/bug27928 b/changes/bug27928
new file mode 100644
index 0000000000..a4ea63e8fe
--- /dev/null
+++ b/changes/bug27928
@@ -0,0 +1,4 @@
+ o Minor bugfixes (networking):
+ - Refrain from attempting socket rebinding when old
+ and new listeners are in different address families.
+ Fixes bug 27928; bugfix on 0.3.5.1-alpha.
diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c
index 9ef0561a55..5ebfac6bee 100644
--- a/src/core/mainloop/connection.c
+++ b/src/core/mainloop/connection.c
@@ -2798,6 +2798,7 @@ retry_listener_ports(smartlist_t *old_conns,
}
#ifdef ENABLE_LISTENER_REBIND
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),
tor_addr_is_null(&conn->addr));
if (replacements && may_need_rebind) {