[Python-checkins] CVS: python/dist/src/Modules socketmodule.c,1.159,1.160
Martin v. L?wis
loewis@users.sourceforge.net
Fri, 03 Aug 2001 03:02:31 -0700
Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv27868
Modified Files:
socketmodule.c
Log Message:
Do not use the system getaddrinfo on Mac OS X. Fixes bug #445928.
Since getnameinfo is not implemented, remove __APPLE__ check here.
Index: socketmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.c,v
retrieving revision 1.159
retrieving revision 1.160
diff -C2 -d -r1.159 -r1.160
*** socketmodule.c 2001/07/31 18:05:33 1.159
--- socketmodule.c 2001/08/03 10:02:29 1.160
***************
*** 219,231 ****
#endif
/* I know this is a bad practice, but it is the easiest... */
! /* XXX Temporarily work around bug #445928:
! 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"
#endif
! #if !defined(HAVE_GETNAMEINFO) || defined(__APPLE__)
#include "getnameinfo.c"
#endif
--- 219,241 ----
#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... */
! #if !defined(HAVE_GETADDRINFO)
#include "getaddrinfo.c"
#endif
! #if !defined(HAVE_GETNAMEINFO)
#include "getnameinfo.c"
#endif