static int
dirserv_router_has_valid_address(routerinfo_t *ri)
{
+ tor_addr_t addr;
if (get_options()->DirAllowPrivateAddresses)
return 0; /* whatever it is, we're fine with it */
- if (is_internal_IP(ri->addr, 0)) {
- if (tor_addr_parse(&addr, ri->address) != AF_INET) {
- log_info(LD_DIRSERV,"Router %s published non-IPv4 address '%s'. Refusing.",
- router_describe(ri),
- ri->address);
- return -1;
- }
++ tor_addr_from_ipv4h(&addr, ri->addr);
+
+ if (tor_addr_is_internal(&addr, 0)) {
log_info(LD_DIRSERV,
- "Router %s published internal IP address '%s'. Refusing.",
- router_describe(ri), ri->address);
+ "Router %s published internal IP address. Refusing.",
+ router_describe(ri));
return -1; /* it's a private IP, we should reject it */
}
return 0;