curl/m4
Jonas 'Sortie' Termansen 78c3172921
curl_addrinfo: support operating systems with only getaddrinfo(3)
The gethostbyname(3) family was removed in POSIX-1.2008 in favor of
getaddrinfo(3) introduced in POSIX-1.2001. Modern POSIX systems such as
Sortix does not have gethostbyname nor the related definitions and
structures.

curl already only uses getaddrinfo(3) if available and thread safe,
although there is mild breakage if the related gethostbyname definitions
are missing.

This change attempts to fix that breakage:

Remove an unnecessary configure error if gethostbyname is missing since
getaddrinfo is enough as a fallback.

Rewrite Curl_ip2addr to not use struct hostent as it no longer is
standardized and create the struct Curl_addrinfo directly.

Only define the Curl_he2ai function on non-getaddrinfo systems where it
is going to be used with struct hoestent.

Revoke the fallback logic for when it's unknown whether getaddrinfo is
thread safe. It doesn't appear to make any sense since h_errno is
unrelated to getaddrinfo. The logic prevents new POSIX.1-2024 systems
from passing the thread safety test since h_errno does not exist anymore
and POSIX already requires getaddrinfo to be thread safe. There's
already a denylist in place for operating systems with known buggy
implementations.

Closes #15475
2024-11-02 22:28:59 +01:00
..
.gitignore copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl-amissl.m4 configure: delete unused HAVE_OPENSSL3 macro 2024-08-26 11:01:11 +02:00
curl-bearssl.m4 configure: fix indentation more 2024-08-26 11:14:01 +02:00
curl-compilers.m4 tidy-up: whitespace, fix CI spacecheck for docs 2024-10-30 23:15:28 +01:00
curl-confopts.m4 tidy-up: indentation in autotools sources 2024-09-25 09:10:45 +02:00
curl-functions.m4 curl_addrinfo: support operating systems with only getaddrinfo(3) 2024-11-02 22:28:59 +01:00
curl-gnutls.m4 configure: fix indentation more 2024-08-26 11:14:01 +02:00
curl-mbedtls.m4 configure: fix indentation more 2024-08-26 11:14:01 +02:00
curl-openssl.m4 tidy-up: indentation in autotools sources 2024-09-25 09:10:45 +02:00
curl-override.m4 tidy-up: indent, whitespace, #error in make files 2024-09-22 09:51:15 +02:00
curl-reentrant.m4 tidy-up: indentation in autotools sources 2024-09-25 09:10:45 +02:00
curl-rustls.m4 curl-rustls.m4: set linker flags to allow rustls build on macos 2024-10-13 23:10:45 +02:00
curl-schannel.m4 copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl-sectransp.m4 cmake, configure: also link with CoreServices 2023-09-20 08:38:19 +02:00
curl-sysconfig.m4 configure: catch Apple in more target triplets 2024-09-21 12:21:13 +02:00
curl-wolfssl.m4 tidy-up: indentation in autotools sources 2024-09-25 09:10:45 +02:00
xc-am-iface.m4 misc: cleanup after removing years from copyright 2024-07-30 14:11:48 +02:00
xc-cc-check.m4 misc: cleanup after removing years from copyright 2024-07-30 14:11:48 +02:00
xc-lt-iface.m4 misc: cleanup after removing years from copyright 2024-07-30 14:11:48 +02:00
xc-val-flgs.m4 configure: fix indentation more 2024-08-26 11:14:01 +02:00
zz40-xc-ovr.m4 misc: cleanup after removing years from copyright 2024-07-30 14:11:48 +02:00
zz50-xc-ovr.m4 misc: cleanup after removing years from copyright 2024-07-30 14:11:48 +02:00
zz60-xc-ovr.m4 misc: cleanup after removing years from copyright 2024-07-30 14:11:48 +02:00