[Swan-dev] libswan/ttoaddress.c: use getaddrinfo(3) instead of gethostbyname2(3)

Andrew Cagney andrew.cagney at gmail.com
Tue May 4 16:50:01 UTC 2021


On Tue, 4 May 2021 at 07:47, Andrew Cagney <andrew.cagney at gmail.com> wrote:

> Looking at the results that came in overnight
> https://testing.libreswan.org/
> The core seems to be fixed.  However, the results are still taking a
> sizable hit; how does that compare to your local results?
>

 It looks like there's more than one challenge here:

-> +whack error: IPv4 address must be exactly 4 bytes "192.1.3.209"

err = data_to_address(res->ai_addr, res->ai_addrlen,
aftoinfo(res->ai_family), dst);
In theory something like:
  ip_sockaddr sa = { .sa,sa = *res->ai_addr, .len = res->ai_addrlen, };
  sockaddr_to_address_port(&sa);
except I've my doubts that res->ai_addr is pointing to the full ip_sockaddr
(it could be shorter for instance). So I'd guess:
  ip_sockaddr sa = { .len = res->sa_addrlen, };
 passert(res->sa_addrlen < sizeof(sa.sa))
  memcpy(&sa.sa, res->ai_addr, res->sa_addrlen);
  ...
or expose an alternative interface

-> -000 "named": failed to convert 'right.libreswan.org' at load time:
not a numeric IPv4 address and name lookup failed (no validation
performed)
-> +000 "named": failed to convert 'right.libreswan.org' at load time:
Name or service not known

I'm not sure if we want to expose linux's idea of errors; if nothing else
it will churn output

->
https://testing.libreswan.org/v4.4-79-g1dad494d64-main/ikev2-x509-07-san-ip-mismatch/OUTPUT/west.console.diff
this has me stumped; I guess a bad ip fed in somewhere and the connection
should have been dropped instead of loaded?!?!


Any ideas on fixing that function's portability?
>

Here's one thought.

Since POSIX doesn't specify the list's order, what about scanning the list
looking for something we like.  At least for when the family wasn't
specified?


> On Tue, 4 May 2021 at 00:23, D. Hugh Redelmeier <hugh at mimosa.com> wrote:
>
>> | From: Andrew Cagney <andrew.cagney at gmail.com>
>>
>> | FYI,
>> |
>> https://testing.libreswan.org/v4.4-73-g379929c054-main/ikev2-ddns-03/OUTPUT/west.console.diff
>>
>> Thanks.
>>
>> Could you see if my latest commit fixes the problem.
>>
>> _______________________________________________
>> Swan-dev mailing list
>> Swan-dev at lists.libreswan.org
>> https://lists.libreswan.org/mailman/listinfo/swan-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libreswan.org/pipermail/swan-dev/attachments/20210504/f1479105/attachment.html>


More information about the Swan-dev mailing list