Even if linking directly to getaddrinfo, use our version of gai_strerror instead of the system's version. Microsoft explicitly documents that their version of gai_strerror is thread-unsafe. Signed-off-by: Martin Storsjö <martin@martin.st>tags/n1.0
| @@ -177,10 +177,12 @@ void ff_freeaddrinfo(struct addrinfo *res); | |||||
| int ff_getnameinfo(const struct sockaddr *sa, int salen, | int ff_getnameinfo(const struct sockaddr *sa, int salen, | ||||
| char *host, int hostlen, | char *host, int hostlen, | ||||
| char *serv, int servlen, int flags); | char *serv, int servlen, int flags); | ||||
| const char *ff_gai_strerror(int ecode); | |||||
| #define getaddrinfo ff_getaddrinfo | #define getaddrinfo ff_getaddrinfo | ||||
| #define freeaddrinfo ff_freeaddrinfo | #define freeaddrinfo ff_freeaddrinfo | ||||
| #define getnameinfo ff_getnameinfo | #define getnameinfo ff_getnameinfo | ||||
| #endif | |||||
| #if !HAVE_GETADDRINFO || HAVE_WINSOCK2_H | |||||
| const char *ff_gai_strerror(int ecode); | |||||
| #undef gai_strerror | #undef gai_strerror | ||||
| #define gai_strerror ff_gai_strerror | #define gai_strerror ff_gai_strerror | ||||
| #endif | #endif | ||||
| @@ -239,7 +239,9 @@ int ff_getnameinfo(const struct sockaddr *sa, int salen, | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| #endif /* !HAVE_GETADDRINFO */ | |||||
| #if !HAVE_GETADDRINFO || HAVE_WINSOCK2_H | |||||
| const char *ff_gai_strerror(int ecode) | const char *ff_gai_strerror(int ecode) | ||||
| { | { | ||||
| switch(ecode) { | switch(ecode) { | ||||
| @@ -258,7 +260,7 @@ const char *ff_gai_strerror(int ecode) | |||||
| return "Unknown error"; | return "Unknown error"; | ||||
| } | } | ||||
| #endif | |||||
| #endif /* !HAVE_GETADDRINFO || HAVE_WINSOCK2_H */ | |||||
| int ff_socket_nonblock(int socket, int enable) | int ff_socket_nonblock(int socket, int enable) | ||||
| { | { | ||||