diff options
-rw-r--r-- | src/common/address.c | 12 | ||||
-rw-r--r-- | src/common/address.h | 2 | ||||
-rw-r--r-- | src/or/dirvote.c | 4 |
3 files changed, 16 insertions, 2 deletions
diff --git a/src/common/address.c b/src/common/address.c index e88869f1d8..e5862be1e9 100644 --- a/src/common/address.c +++ b/src/common/address.c @@ -1697,3 +1697,15 @@ tor_addr_hostname_is_local(const char *name) !strcasecmpend(name, ".local"); } + +/** Return a newly allocated tor_addr_port_t with <b>addr</b> and + <b>port</b> filled in. */ +tor_addr_port_t * +tor_addr_port_new(const tor_addr_t *addr, uint16_t port) +{ + tor_addr_port_t *ap = tor_malloc_zero(sizeof(tor_addr_port_t)); + if (addr) + tor_addr_copy(&ap->addr, addr); + ap->port = port; + return ap; +} diff --git a/src/common/address.h b/src/common/address.h index c6c126862a..27dff66204 100644 --- a/src/common/address.h +++ b/src/common/address.h @@ -221,5 +221,7 @@ int tor_inet_ntoa(const struct in_addr *in, char *buf, size_t buf_len); char *tor_dup_ip(uint32_t addr) ATTR_MALLOC; int get_interface_address(int severity, uint32_t *addr); +tor_addr_port_t *tor_addr_port_new(const tor_addr_t *addr, uint16_t port); + #endif diff --git a/src/or/dirvote.c b/src/or/dirvote.c index e6601cffb7..2c9e56d7af 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -479,8 +479,8 @@ compute_routerstatus_consensus(smartlist_t *votes, int consensus_method, if (compare_vote_rs(most, rs) == 0 && !tor_addr_is_null(&rs->status.ipv6_addr) && rs->status.ipv6_orport) { - smartlist_add(alt_orports, tor_addr_port_alloc(&rs->status.ipv6_addr, - rs->status.ipv6_orport)); + smartlist_add(alt_orports, tor_addr_port_new(&rs->status.ipv6_addr, + rs->status.ipv6_orport)); log_debug(LD_DIR, "picking %s:%d (%s) for voting on \"a\" lines", /* FIXME: remove */ fmt_and_decorate_addr(&rs->status.ipv6_addr), rs->status.ipv6_orport, rs->status.nickname); |