Functions that perform hostname lookup should be clearly labeled
Quick quiz: which of the following might do a DNS lookup, and which don't?
A. tor_addr_port_parse() B. parse_addr_port() C. tor_addr_lookup() D. tor_addr_parse_mask_ports() E. tor_addr_from_str() F. parse_addr_and_port_range()
If remembered that A, B, and C can do DNS lookups, but that D, E, and F don't do DNS lookups, then you have a better memory than I.
We should rename the functions here so that everything that does a resolve has "resolve" or "lookup" in its name, and everything that only has "parse" in its name is parsing-only. We should also audit our use of the resolving functions to make sure that we're not calling any of them any place that we shouldn't.
The renaming should hold off till after we've merged the IPv6 conversion, since that touches almost all of the code we'd want to alter here.