mirror of
https://github.com/python/cpython.git
synced 2025-09-11 19:27:07 +00:00
Do not use the system getaddrinfo on Mac OS X. Fixes bug #445928.
Since getnameinfo is not implemented, remove __APPLE__ check here.
This commit is contained in:
parent
952d0a57d8
commit
ae26dc23a9
1 changed files with 16 additions and 6 deletions
|
@ -218,15 +218,25 @@ int inet_pton (int af, const char *src, void *dst);
|
||||||
const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
|
const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
/* On OS X, getaddrinfo returns no error indication of lookup
|
||||||
|
failure, so we must use the emulation instead of the libinfo
|
||||||
|
implementation. Unfortunately, performing an autoconf test
|
||||||
|
for this bug would require DNS access for the machine performing
|
||||||
|
the configuration, which is not acceptable. Therefore, we
|
||||||
|
determine the bug just by checking for __APPLE__. If this bug
|
||||||
|
gets ever fixed, perhaps checking for sys/version.h would be
|
||||||
|
appropriate, which is 10/0 on the system with the bug. */
|
||||||
|
#undef HAVE_GETADDRINFO
|
||||||
|
/* avoid clashes with the C library definition of the symbol. */
|
||||||
|
#define getaddrinfo fake_getaddrinfo
|
||||||
|
#endif
|
||||||
|
|
||||||
/* I know this is a bad practice, but it is the easiest... */
|
/* I know this is a bad practice, but it is the easiest... */
|
||||||
/* XXX Temporarily work around bug #445928:
|
#if !defined(HAVE_GETADDRINFO)
|
||||||
getaddrinfo on Darwin seems to return an empty result list, with
|
|
||||||
no error, even if host lookup ought to work fine. So use the
|
|
||||||
emulation code for now. */
|
|
||||||
#if !defined(HAVE_GETADDRINFO) || defined(__APPLE__)
|
|
||||||
#include "getaddrinfo.c"
|
#include "getaddrinfo.c"
|
||||||
#endif
|
#endif
|
||||||
#if !defined(HAVE_GETNAMEINFO) || defined(__APPLE__)
|
#if !defined(HAVE_GETNAMEINFO)
|
||||||
#include "getnameinfo.c"
|
#include "getnameinfo.c"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue