Peter Stuge wrote in
<20220318230932.23632.qmail at stuge.se>:
|Damien Miller wrote:
|>> "fatal: bad addr or host: ::1 (no address associated with
name)"
|>
|> sshd doesn't need to actually resolve the listenaddress directives in
|> the reexec path, so skip it.
|
|Is a further improvement possible where addresses are recognized as
|such without the resolver, eliminating the resolver as a source of
|problems when it's actually not applicable?
|
|I don't know how easy it is to accomplish very portably? :\
|
|POSIX.1-2001 offers inet_pton() but that essentially requires trying
|both AF_INET and AF_INET6 explicitly.
I wonder, don't you usually do
c_af = (su_cs_find_c(pgp->pg_ca, ':') != NIL) ? AF_INET6 :
AF_INET;
if(inet_pton(c_af, pgp->pg_ca,
(c_af == AF_INET ? S(void*,&c_sip.v4)
: S(void*,&c_sip.v6))) != 1){
Problem (for me regarding inet_pton(3)) is more that this beast
fails for things like 127.000.000.001, it expects properly
formatted 127.0.0.1. (This at least GNU LibC, i personally see
this as a bug, even though POSIX says "standard text
interpretation" --- but that surely is decimal and then
"compression" (to use the term for IPv4) should be applicable or
not.)
|getaddrinfo() sometimes supports AI_NUMERICHOST which could perhaps
|be tried once opportunistically, before trying again with it unset?
|
|Would it be worthwhile to do something like that even if it only
|works on some platforms? (Others would keep current behavior.)
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)