Commit a7e4022d authored by Yang Tse's avatar Yang Tse
Browse files

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.
parent 49998476
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
#***************************************************************************

# File version for 'aclocal' use. Keep it a single number.
# serial 35
# serial 36


dnl CARES_INCLUDES_ARPA_INET
@@ -1019,15 +1019,15 @@ 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*)
      dragonfly*)
        dnl dragonfly bsd any version
        tst_tsafe_getaddrinfo="yes"
        ;;
@@ -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,
+15 −6
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
#***************************************************************************

# File version for 'aclocal' use. Keep it a single number.
# serial 57
# serial 58


dnl CURL_INCLUDES_ARPA_INET
@@ -1643,15 +1643,15 @@ 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*)
      dragonfly*)
        dnl dragonfly bsd any version
        tst_tsafe_getaddrinfo="yes"
        ;;
@@ -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,