aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2009-11-13 05:01:51 +0000
committerYang Tse <yangsita@gmail.com>2009-11-13 05:01:51 +0000
commita7e4022d6b8600e7835cde0c82147513427aaac8 (patch)
treeab638b50e90c6959e5faaa36fd53ac092ea90ca3
parent4999847625d6ff149e0e5dd34728bf531f21182a (diff)
Related with the threadsafe capability of getaddrinfo:
- Constantine Sapuntzakis reported that Darwin 6.0 a.k.a. MAC OS X 10.2 and newer have a threadsafe getaddrinfo. - Fix Dragonfly BSD triplet detection. - In case the hard-coded knowledge says that getaddrinfo is threadsafe, an additional check is done to verify that h_errno is also defined. If h_errno isn't defined, we finally assume that it isn't threadsafe. Jamie Lokier provided the inspiration for this extra check.
-rw-r--r--ares/m4/cares-functions.m421
-rw-r--r--m4/curl-functions.m421
2 files changed, 30 insertions, 12 deletions
diff --git a/ares/m4/cares-functions.m4 b/ares/m4/cares-functions.m4
index 898a4eaef..ec9ff9a2e 100644
--- a/ares/m4/cares-functions.m4
+++ b/ares/m4/cares-functions.m4
@@ -16,7 +16,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 35
+# serial 36
dnl CARES_INCLUDES_ARPA_INET
@@ -1019,16 +1019,16 @@ AC_DEFUN([CARES_CHECK_FUNC_GETADDRINFO], [
dnl aix 5.2 and newer
tst_tsafe_getaddrinfo="yes"
;;
- darwin[[12354678]].*)
- dnl darwin 8.X and older
+ darwin[[12345]].*)
+ dnl darwin 5.0 and mac os x 10.1.X and older
tst_tsafe_getaddrinfo="no"
;;
darwin*)
- dnl darwin 9.X and newer
+ dnl darwin 6.0 and mac os x 10.2.X and newer
tst_tsafe_getaddrinfo="yes"
;;
- dragonflybsd*)
- dnl dragonflybsd any version
+ dragonfly*)
+ dnl dragonfly bsd any version
tst_tsafe_getaddrinfo="yes"
;;
freebsd[[1234]].* | freebsd5.[[1234]]*)
@@ -1060,6 +1060,15 @@ AC_DEFUN([CARES_CHECK_FUNC_GETADDRINFO], [
tst_tsafe_getaddrinfo="yes"
;;
esac
+ CURL_CHECK_DEF_CC([h_errno], [
+ $curl_includes_ws2tcpip
+ $curl_includes_sys_socket
+ $curl_includes_netdb
+ ], [silent])
+ if test "$tst_tsafe_getaddrinfo" = "yes" &&
+ test "$curl_cv_have_def_h_errno" = "no"; then
+ tst_tsafe_getaddrinfo="no"
+ fi
AC_MSG_RESULT([$tst_tsafe_getaddrinfo])
if test "$tst_tsafe_getaddrinfo" = "yes"; then
AC_DEFINE_UNQUOTED(HAVE_GETADDRINFO_THREADSAFE, 1,
diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4
index 81543934e..d3a783112 100644
--- a/m4/curl-functions.m4
+++ b/m4/curl-functions.m4
@@ -22,7 +22,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 57
+# serial 58
dnl CURL_INCLUDES_ARPA_INET
@@ -1643,16 +1643,16 @@ AC_DEFUN([CURL_CHECK_FUNC_GETADDRINFO], [
dnl aix 5.2 and newer
tst_tsafe_getaddrinfo="yes"
;;
- darwin[[12354678]].*)
- dnl darwin 8.X and older
+ darwin[[12345]].*)
+ dnl darwin 5.0 and mac os x 10.1.X and older
tst_tsafe_getaddrinfo="no"
;;
darwin*)
- dnl darwin 9.X and newer
+ dnl darwin 6.0 and mac os x 10.2.X and newer
tst_tsafe_getaddrinfo="yes"
;;
- dragonflybsd*)
- dnl dragonflybsd any version
+ dragonfly*)
+ dnl dragonfly bsd any version
tst_tsafe_getaddrinfo="yes"
;;
freebsd[[1234]].* | freebsd5.[[1234]]*)
@@ -1684,6 +1684,15 @@ AC_DEFUN([CURL_CHECK_FUNC_GETADDRINFO], [
tst_tsafe_getaddrinfo="yes"
;;
esac
+ CURL_CHECK_DEF_CC([h_errno], [
+ $curl_includes_ws2tcpip
+ $curl_includes_sys_socket
+ $curl_includes_netdb
+ ], [silent])
+ if test "$tst_tsafe_getaddrinfo" = "yes" &&
+ test "$curl_cv_have_def_h_errno" = "no"; then
+ tst_tsafe_getaddrinfo="no"
+ fi
AC_MSG_RESULT([$tst_tsafe_getaddrinfo])
if test "$tst_tsafe_getaddrinfo" = "yes"; then
AC_DEFINE_UNQUOTED(HAVE_GETADDRINFO_THREADSAFE, 1,