Since #4875 (moved) depends on #4561 (moved), either #4561 (moved) needs to go into 0.2.3.x, or this needs to go into 0.2.4.x, or the two branches need to be decoupled.
Which commit is the 4875 fix? I see a couple whose commit messages are just "first take" -- are they the ones I should be looking at?
Let's just always use strlcpy, not strcpy. OpenBSD spews warnings when you use strcpy, and the performance/convenience advantage just isn't worth it.
I don't like {AF_UNSPEC,{0}} as a literal initializer. If we want to have something like that, it ought to be a macro in address.h , so we use it everywhere and change it in one place only if the representation of tor_addr_t changes.
It needs a real commit message and a changes file.
I think that cherry-picking it back onto something pre-#4561 makes sense : when I tried "git cherry-pick 1ff25a3e", there was only one (trivial) conflict.
Can you tell me a little about the "XXX ipv6" instances? It looks like part of this patch makes parts of the code work with IPv6, but other parts of the patch assume that everything is still IPv4? Or do I understand wrong?
Re "XXXX ipv6", yes this patch doesn't fix everything "all the way
down". Functions or parts of functions involved in this patch which
still don't handle IPv6 are marked with "XXXX ipv6". For example,
router_new_address_suggestion() uses resolve_my_address() which
still doesn't know about IPv6.