summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/socketmodule.c7
2 files changed, 9 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 93c2ba0..00bd247 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -149,6 +149,9 @@ present).
Extension Modules
-----------------
+- Patch #1288833: Removed thread lock from socket.getaddrinfo on
+ FreeBSD 5.3 and later versions which got thread-safe getaddrinfo(3).
+
- Patches #1298449 and #1298499: Add some missing checks for error
returns in cStringIO.c.
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 4c0a0fc..e3573e3 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -140,9 +140,14 @@ shutdown(how) -- shut down traffic in one or both directions\n\
# define USE_GETHOSTBYNAME_LOCK
#endif
+/* To use __FreeBSD_version */
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
/* On systems on which getaddrinfo() is believed to not be thread-safe,
(this includes the getaddrinfo emulation) protect access with a lock. */
-#if defined(WITH_THREAD) && (defined(__APPLE__) || defined(__FreeBSD__) || \
+#if defined(WITH_THREAD) && (defined(__APPLE__) || \
+ (defined(__FreeBSD__) && __FreeBSD_version+0 < 503000) || \
defined(__OpenBSD__) || defined(__NetBSD__) || !defined(HAVE_GETADDRINFO))
#define USE_GETADDRINFO_LOCK
#endif