commit 08ef8c0958ebeb134e4f29d1738c85c0ac81e71d Author: Nick Mathewson nickm@torproject.org Date: Mon Feb 3 14:13:08 2014 -0500
tor_addr_from_sockaddr() is applicable in ipfw code, so use it. --- src/or/connection_edge.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index ddeac10..2ece2e4 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -1439,15 +1439,7 @@ connection_ap_get_original_destination(entry_connection_t *conn, if (get_options()->TransProxyType_parsed == TPT_IPFW) { /* ipfw(8) is used and in this case getsockname returned the original destination */ - if (proxy_sa->sa_family == AF_INET) { - struct sockaddr_in *dest_addr4 = (struct sockaddr_in *)proxy_sa; - tor_addr_from_ipv4n(&addr, dest_addr4->sin_addr.s_addr); - req->port = ntohs(dest_addr4->sin_port); - } else if (proxy_sa->sa_family == AF_INET6) { - struct sockaddr_in6 *dest_addr6 = (struct sockaddr_in6 *)proxy_sa; - tor_addr_from_in6(&addr, &dest_addr6->sin6_addr); - req->port = ntohs(dest_addr6->sin6_port); - } else { + if (tor_addr_from_sockaddr(&addr, proxy_sa, &req->port) < 0) { tor_fragile_assert(); return -1; }