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.
This commit is contained in:
Yang Tse 2009-11-13 05:01:51 +00:00
parent 4999847625
commit a7e4022d6b
2 changed files with 30 additions and 12 deletions

View File

@ -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,

View File

@ -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,