]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #26406: Avoid unnecessary serialization of getaddrinfo(3) calls on
authorNed Deily <nad@python.org>
Tue, 23 Feb 2016 11:03:39 +0000 (22:03 +1100)
committerNed Deily <nad@python.org>
Tue, 23 Feb 2016 11:03:39 +0000 (22:03 +1100)
current versions of OpenBSD and NetBSD.  Patch by A. Jesse Jiryu Davis.

Misc/NEWS
Modules/socketmodule.c

index 28769710847146309792073a90cf8136811a1a3c..931a9e065960bbd18476e4faa20f85c713b846f5 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -119,7 +119,10 @@ Library
 - Issue #23914: Fixed SystemError raised by CPickle unpickler on broken data.
 
 - Issue #25924: Avoid unnecessary serialization of getaddrinfo(3) calls on
-  OS X versions 10.5 or higher.  Original patch by A. Jesse Jiryu Davis..
+  OS X versions 10.5 or higher.  Original patch by A. Jesse Jiryu Davis.
+
+- Issue #26406: Avoid unnecessary serialization of getaddrinfo(3) calls on
+  current versions of OpenBSD and NetBSD.  Patch by A. Jesse Jiryu Davis.
 
 IDLE
 ----
index c02c5d97880e26bded161fd333d6f720a4c34e4f..cd6df9258139a07905a4b624998340bb31d85da1 100644 (file)
@@ -183,7 +183,7 @@ shutdown(how) -- shut down traffic in one or both directions\n\
 # define USE_GETHOSTBYNAME_LOCK
 #endif
 
-/* To use __FreeBSD_version */
+/* To use __FreeBSD_version, __OpenBSD__, and __NetBSD_Version__ */
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
@@ -194,15 +194,21 @@ shutdown(how) -- shut down traffic in one or both directions\n\
    a mix of code including an unsafe implementation from an old BSD's
    libresolv. In 10.5 Apple reimplemented it as a safe IPC call to the
    mDNSResponder process. 10.5 is the first be UNIX '03 certified, which
-   includes the requirement that getaddrinfo be thread-safe.
+   includes the requirement that getaddrinfo be thread-safe. See issue #25924.
 
-   See issue #25924 for details.
- */
+   It's thread-safe in OpenBSD starting with 5.4, released Nov 2013:
+   http://www.openbsd.org/plus54.html
+
+   It's thread-safe in NetBSD starting with 4.0, released Dec 2007:
+
+http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/net/getaddrinfo.c.diff?r1=1.82&r2=1.83
+*/
 #if defined(WITH_THREAD) && ( \
     (defined(__APPLE__) && \
         MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5) || \
     (defined(__FreeBSD__) && __FreeBSD_version+0 < 503000) || \
-    defined(__OpenBSD__) || defined(__NetBSD__) || \
+    (defined(__OpenBSD__) && OpenBSD+0 < 201311) || \
+    (defined(__NetBSD__) && __NetBSD_Version__+0 < 400000000) || \
     defined(__VMS) || !defined(HAVE_GETADDRINFO))
 #define USE_GETADDRINFO_LOCK
 #endif