[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