[Swan-dev] get rid of getnetbyname() /etc/networks?
D. Hugh Redelmeier
hugh at mimosa.com
Mon May 3 05:53:46 UTC 2021
| From: Paul Wouters <paul at nohats.ca>
| Related, there are still a few places that end up calling
| gethostbyname2() which is also obsolete and does not work for IPv6:
| lib/libswan/ttoaddress.c: struct hostent *h = gethostbyname2(p, af);
| The case in ttoaddress.c is the main one. Since it is used by
| ttoaddress_dns() which is used in many places, we cannot replace it
| with an async libunbound call. And to do a sync unbound call, last I
| looked at this years ago, we would have to start another libunbound
| context which gets its own cachce. Also, it would mean people can no
| longer compile without libunbound. I guess the best fix would be to
| rewrite it to use getaddrinfo() or res_ functions?
I'm working on using getaddrinfo(3). Using getaddrinfo(3) seems to be
more concise than using gethostbyname2(3). This is surprising given
the complex interface.
I think that the res_functions are not a good idea: they are not
POSIX, they are just BIND (GCC wrapper).
More information about the Swan-dev