aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/address.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/common/address.c b/src/common/address.c
index e3c2521235..3e26576815 100644
--- a/src/common/address.c
+++ b/src/common/address.c
@@ -1542,8 +1542,16 @@ get_interface_address6_via_udp_socket_hack(int severity,
goto err;
}
- tor_addr_from_sockaddr(addr, (struct sockaddr*)&my_addr, NULL);
- r=0;
+ if (tor_addr_from_sockaddr(addr, (struct sockaddr*)&my_addr, NULL) == 0) {
+ if (tor_addr_is_loopback(addr) || tor_addr_is_multicast(addr)) {
+ log_fn(severity, LD_NET, "Address that we determined via UDP socket"
+ " magic is unsuitable for public comms.");
+ }
+ else {
+ r=0;
+ }
+ }
+
err:
if (sock >= 0)
tor_close_socket(sock);