Mason wrote: > Yang Tse wrote: > >> Do you have a system on which current git version detection of >> getaddrinfo() thread-safeness is wrong? > > It doesn't work with lwip, where, in the typical configuration, > > 1) gethostbyname is not thread-safe > 2) getaddrinfo is thread-safe (AFAICT) > 3) netdb.h declares extern int h_errno; (as permitted by POSIX) > >> Not theoretical thinking but actual run and facts. > > I'm sorry you don't like to hear it, but checking for h_errno > to decide whether getaddrinfo is thread-safe is misguided. > Just because it works for glibc(*) doesn't change that fact. > > (*) # define h_errno (*__h_errno_location ()) > >> In any case take in account that the most important thing about the >> test is to not provide false-positive results that would break libcurl >> operation. A false-negative detection is not a big issue given that >> libcurl will work nicely in that case. > > ( libcurl works with non thread-safe gethostbyname, but breaks > with non thread-safe getaddrinfo? ) > > The problem with h_errno is that it is tied to obsolete functions. > There is no connection whatsoever between h_errno and getaddrinfo. > > I'll take a look at the getaddrinfo code in FreeBSD 4 to understand > why libcurl declare this implementation not thread-safe. Do you know, > off-hand? > >> Obviously if you have a system on which detection is wrong, I'm >> interested in further details about that platform. > > With the lwip port, libcurl picks gethostbyname.
I meant libcurl picks gethostbyname_r (and I don't know if gethostbyname_r would disappear along with gethostbyname). -- Regards. ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
