Browse Source

network: Always use our version of gai_strerror on windows

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
Martin Storsjö 13 years ago
parent
commit
9e4b04f8b9
2 changed files with 6 additions and 2 deletions
  1. +3
    -1
      libavformat/network.h
  2. +3
    -1
      libavformat/os_support.c

+ 3
- 1
libavformat/network.h View File

@@ -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


+ 3
- 1
libavformat/os_support.c View File

@@ -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)
{ {


Loading…
Cancel
Save