lib: provide a getaddrinfo wrapper

This uses c-ares under the hood and supports the CURL_DNS_SERVER
environment variable - for debug builds only. The getaddrinfo()
replacement function is only used if CURL_DNS_SERVER is set to make a
debug build work more like a release version without the variable set.

'override-dns' is a new feature for the test suite when curl can be told
to use a dedicated DNS server, and test 2102 is the first to require
this.

Requires c-ares 1.26.0 or later.

Closes #17134
This commit is contained in:
Daniel Stenberg 2025-04-22 14:51:49 +02:00
parent da33c1e349
commit e0ebc3ff13
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 335 additions and 11 deletions

View file

@ -123,10 +123,10 @@ LIB_CFILES = \
cf-socket.c \
cfilters.c \
conncache.c \
cshutdn.c \
connect.c \
content_encoding.c \
cookie.c \
cshutdn.c \
curl_addrinfo.c \
curl_des.c \
curl_endian.c \
@ -154,6 +154,7 @@ LIB_CFILES = \
easygetopt.c \
easyoptions.c \
escape.c \
fake_addrinfo.c \
file.c \
fileinfo.c \
fopen.c \
@ -304,6 +305,7 @@ LIB_HFILES = \
easyif.h \
easyoptions.h \
escape.h \
fake_addrinfo.h \
file.h \
fileinfo.h \
fopen.h \