Skip to content
Snippets Groups Projects
curl-functions.m4 154 KiB
Newer Older
  • Learn to ignore specific revisions
  •     AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYNAME, 1,
          [Define to 1 if you have the gethostbyname function.])
        ac_cv_func_gethostbyname="yes"
      else
        AC_MSG_RESULT([no])
        ac_cv_func_gethostbyname="no"
      fi
    ])
    
    
    
    dnl CURL_CHECK_FUNC_GETHOSTBYNAME_R
    dnl -------------------------------------------------
    dnl Verify if gethostbyname_r is available, prototyped,
    dnl and can be compiled. If all of these are true, and
    dnl usage has not been previously disallowed with
    dnl shell variable curl_disallow_gethostbyname_r, then
    dnl HAVE_GETHOSTBYNAME_R will be defined.
    
    AC_DEFUN([CURL_CHECK_FUNC_GETHOSTBYNAME_R], [
    
      AC_REQUIRE([CURL_INCLUDES_NETDB])dnl
    
      #
      tst_links_gethostbyname_r="unknown"
      tst_proto_gethostbyname_r="unknown"
      tst_compi_gethostbyname_r="unknown"
      tst_allow_gethostbyname_r="unknown"
      tst_nargs_gethostbyname_r="unknown"
      #
      AC_MSG_CHECKING([if gethostbyname_r can be linked])
      AC_LINK_IFELSE([
        AC_LANG_FUNC_LINK_TRY([gethostbyname_r])
      ],[
        AC_MSG_RESULT([yes])
        tst_links_gethostbyname_r="yes"
      ],[
        AC_MSG_RESULT([no])
        tst_links_gethostbyname_r="no"
      ])
      #
      if test "$tst_links_gethostbyname_r" = "yes"; then
        AC_MSG_CHECKING([if gethostbyname_r is prototyped])
        AC_EGREP_CPP([gethostbyname_r],[
          $curl_includes_netdb
        ],[
          AC_MSG_RESULT([yes])
          tst_proto_gethostbyname_r="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_proto_gethostbyname_r="no"
        ])
      fi
      #
      if test "$tst_proto_gethostbyname_r" = "yes"; then
        if test "$tst_nargs_gethostbyname_r" = "unknown"; then
          AC_MSG_CHECKING([if gethostbyname_r takes 3 args.])
          AC_COMPILE_IFELSE([
            AC_LANG_PROGRAM([[
              $curl_includes_netdb
            ]],[[
              if(0 != gethostbyname_r(0, 0, 0))
                return 1;
            ]])
          ],[
            AC_MSG_RESULT([yes])
            tst_compi_gethostbyname_r="yes"
            tst_nargs_gethostbyname_r="3"
          ],[
            AC_MSG_RESULT([no])
            tst_compi_gethostbyname_r="no"
          ])
        fi
        if test "$tst_nargs_gethostbyname_r" = "unknown"; then
          AC_MSG_CHECKING([if gethostbyname_r takes 5 args.])
          AC_COMPILE_IFELSE([
            AC_LANG_PROGRAM([[
              $curl_includes_netdb
            ]],[[
              if(0 != gethostbyname_r(0, 0, 0, 0, 0))
                return 1;
            ]])
          ],[
            AC_MSG_RESULT([yes])
            tst_compi_gethostbyname_r="yes"
            tst_nargs_gethostbyname_r="5"
          ],[
            AC_MSG_RESULT([no])
            tst_compi_gethostbyname_r="no"
          ])
        fi
        if test "$tst_nargs_gethostbyname_r" = "unknown"; then
          AC_MSG_CHECKING([if gethostbyname_r takes 6 args.])
          AC_COMPILE_IFELSE([
            AC_LANG_PROGRAM([[
              $curl_includes_netdb
            ]],[[
              if(0 != gethostbyname_r(0, 0, 0, 0, 0, 0))
                return 1;
            ]])
          ],[
            AC_MSG_RESULT([yes])
            tst_compi_gethostbyname_r="yes"
            tst_nargs_gethostbyname_r="6"
          ],[
            AC_MSG_RESULT([no])
            tst_compi_gethostbyname_r="no"
          ])
        fi
        AC_MSG_CHECKING([if gethostbyname_r is compilable])
        if test "$tst_compi_gethostbyname_r" = "yes"; then
          AC_MSG_RESULT([yes])
        else
          AC_MSG_RESULT([no])
        fi
      fi
      #
      if test "$tst_compi_gethostbyname_r" = "yes"; then
        AC_MSG_CHECKING([if gethostbyname_r usage allowed])
        if test "x$curl_disallow_gethostbyname_r" != "xyes"; then
          AC_MSG_RESULT([yes])
          tst_allow_gethostbyname_r="yes"
        else
          AC_MSG_RESULT([no])
          tst_allow_gethostbyname_r="no"
        fi
      fi
      #
      AC_MSG_CHECKING([if gethostbyname_r might be used])
      if test "$tst_links_gethostbyname_r" = "yes" &&
         test "$tst_proto_gethostbyname_r" = "yes" &&
         test "$tst_compi_gethostbyname_r" = "yes" &&
         test "$tst_allow_gethostbyname_r" = "yes"; then
        AC_MSG_RESULT([yes])
        AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYNAME_R, 1,
          [Define to 1 if you have the gethostbyname_r function.])
        dnl AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_ARGS, $tst_nargs_gethostbyname_r,
        dnl   [Specifies the number of arguments to gethostbyname_r])
        #
    
        if test "$tst_nargs_gethostbyname_r" -eq "3"; then
    
          AC_DEFINE(HAVE_GETHOSTBYNAME_R_3, 1, [gethostbyname_r() takes 3 args])
    
        elif test "$tst_nargs_gethostbyname_r" -eq "5"; then
    
          AC_DEFINE(HAVE_GETHOSTBYNAME_R_5, 1, [gethostbyname_r() takes 5 args])
    
        elif test "$tst_nargs_gethostbyname_r" -eq "6"; then
    
          AC_DEFINE(HAVE_GETHOSTBYNAME_R_6, 1, [gethostbyname_r() takes 6 args])
        fi
        #
        ac_cv_func_gethostbyname_r="yes"
      else
        AC_MSG_RESULT([no])
        ac_cv_func_gethostbyname_r="no"
      fi
    ])
    
    
    
    dnl CURL_CHECK_FUNC_GETHOSTNAME
    dnl -------------------------------------------------
    dnl Verify if gethostname is available, prototyped, and
    dnl can be compiled. If all of these are true, and
    dnl usage has not been previously disallowed with
    dnl shell variable curl_disallow_gethostname, then
    dnl HAVE_GETHOSTNAME will be defined.
    
    AC_DEFUN([CURL_CHECK_FUNC_GETHOSTNAME], [
    
      AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl
    
      AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl
      #
      tst_links_gethostname="unknown"
      tst_proto_gethostname="unknown"
      tst_compi_gethostname="unknown"
      tst_allow_gethostname="unknown"
      #
      AC_MSG_CHECKING([if gethostname can be linked])
      AC_LINK_IFELSE([
    
        AC_LANG_PROGRAM([[
          $curl_includes_winsock2
          $curl_includes_unistd
        ]],[[
          if(0 != gethostname(0, 0))
            return 1;
        ]])
    
      ],[
        AC_MSG_RESULT([yes])
        tst_links_gethostname="yes"
      ],[
        AC_MSG_RESULT([no])
        tst_links_gethostname="no"
      ])
      #
      if test "$tst_links_gethostname" = "yes"; then
        AC_MSG_CHECKING([if gethostname is prototyped])
        AC_EGREP_CPP([gethostname],[
    
          $curl_includes_winsock2
    
          $curl_includes_unistd
        ],[
          AC_MSG_RESULT([yes])
          tst_proto_gethostname="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_proto_gethostname="no"
        ])
      fi
      #
      if test "$tst_proto_gethostname" = "yes"; then
        AC_MSG_CHECKING([if gethostname is compilable])
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
    
            $curl_includes_winsock2
    
            $curl_includes_unistd
          ]],[[
            if(0 != gethostname(0, 0))
              return 1;
          ]])
        ],[
          AC_MSG_RESULT([yes])
          tst_compi_gethostname="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_compi_gethostname="no"
        ])
      fi
      #
      if test "$tst_compi_gethostname" = "yes"; then
        AC_MSG_CHECKING([if gethostname usage allowed])
        if test "x$curl_disallow_gethostname" != "xyes"; then
          AC_MSG_RESULT([yes])
          tst_allow_gethostname="yes"
        else
          AC_MSG_RESULT([no])
          tst_allow_gethostname="no"
        fi
      fi
      #
      AC_MSG_CHECKING([if gethostname might be used])
      if test "$tst_links_gethostname" = "yes" &&
         test "$tst_proto_gethostname" = "yes" &&
         test "$tst_compi_gethostname" = "yes" &&
         test "$tst_allow_gethostname" = "yes"; then
        AC_MSG_RESULT([yes])
        AC_DEFINE_UNQUOTED(HAVE_GETHOSTNAME, 1,
          [Define to 1 if you have the gethostname function.])
        ac_cv_func_gethostname="yes"
      else
        AC_MSG_RESULT([no])
        ac_cv_func_gethostname="no"
      fi
    ])
    
    
    
    dnl CURL_CHECK_FUNC_GETIFADDRS
    dnl -------------------------------------------------
    dnl Verify if getifaddrs is available, prototyped, can
    dnl be compiled and seems to work. If all of these are
    dnl true, and usage has not been previously disallowed
    dnl with shell variable curl_disallow_getifaddrs, then
    dnl HAVE_GETIFADDRS will be defined.
    
    AC_DEFUN([CURL_CHECK_FUNC_GETIFADDRS], [
    
      AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl
    
      AC_REQUIRE([CURL_INCLUDES_IFADDRS])dnl
      #
      tst_links_getifaddrs="unknown"
      tst_proto_getifaddrs="unknown"
      tst_compi_getifaddrs="unknown"
      tst_works_getifaddrs="unknown"
      tst_allow_getifaddrs="unknown"
      #
      AC_MSG_CHECKING([if getifaddrs can be linked])
      AC_LINK_IFELSE([
        AC_LANG_FUNC_LINK_TRY([getifaddrs])
      ],[
        AC_MSG_RESULT([yes])
        tst_links_getifaddrs="yes"
      ],[
        AC_MSG_RESULT([no])
        tst_links_getifaddrs="no"
      ])
      #
      if test "$tst_links_getifaddrs" = "yes"; then
        AC_MSG_CHECKING([if getifaddrs is prototyped])
        AC_EGREP_CPP([getifaddrs],[
          $curl_includes_ifaddrs
        ],[
          AC_MSG_RESULT([yes])
          tst_proto_getifaddrs="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_proto_getifaddrs="no"
        ])
      fi
      #
      if test "$tst_proto_getifaddrs" = "yes"; then
        AC_MSG_CHECKING([if getifaddrs is compilable])
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
            $curl_includes_ifaddrs
          ]],[[
            if(0 != getifaddrs(0))
              return 1;
          ]])
        ],[
          AC_MSG_RESULT([yes])
          tst_compi_getifaddrs="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_compi_getifaddrs="no"
        ])
      fi
      #
      dnl only do runtime verification when not cross-compiling
      if test "x$cross_compiling" != "xyes" &&
        test "$tst_compi_getifaddrs" = "yes"; then
        AC_MSG_CHECKING([if getifaddrs seems to work])
        AC_RUN_IFELSE([
          AC_LANG_PROGRAM([[
    
            $curl_includes_ifaddrs
          ]],[[
            struct ifaddrs *ifa = 0;
            int error;
    
            error = getifaddrs(&ifa);
            if(error || !ifa)
              exit(1); /* fail */
            else
              exit(0);
          ]])
        ],[
          AC_MSG_RESULT([yes])
          tst_works_getifaddrs="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_works_getifaddrs="no"
        ])
      fi
      #
      if test "$tst_compi_getifaddrs" = "yes" &&
        test "$tst_works_getifaddrs" != "no"; then
        AC_MSG_CHECKING([if getifaddrs usage allowed])
        if test "x$curl_disallow_getifaddrs" != "xyes"; then
          AC_MSG_RESULT([yes])
          tst_allow_getifaddrs="yes"
        else
          AC_MSG_RESULT([no])
          tst_allow_getifaddrs="no"
        fi
      fi
      #
      AC_MSG_CHECKING([if getifaddrs might be used])
      if test "$tst_links_getifaddrs" = "yes" &&
         test "$tst_proto_getifaddrs" = "yes" &&
         test "$tst_compi_getifaddrs" = "yes" &&
         test "$tst_allow_getifaddrs" = "yes" &&
         test "$tst_works_getifaddrs" != "no"; then
        AC_MSG_RESULT([yes])
        AC_DEFINE_UNQUOTED(HAVE_GETIFADDRS, 1,
          [Define to 1 if you have a working getifaddrs function.])
        ac_cv_func_getifaddrs="yes"
      else
        AC_MSG_RESULT([no])
        ac_cv_func_getifaddrs="no"
      fi
    ])
    
    
    
    dnl CURL_CHECK_FUNC_GETSERVBYPORT_R
    dnl -------------------------------------------------
    dnl Verify if getservbyport_r is available, prototyped,
    dnl and can be compiled. If all of these are true, and
    dnl usage has not been previously disallowed with
    dnl shell variable curl_disallow_getservbyport_r, then
    dnl HAVE_GETSERVBYPORT_R will be defined.
    
    AC_DEFUN([CURL_CHECK_FUNC_GETSERVBYPORT_R], [
    
      AC_REQUIRE([CURL_INCLUDES_NETDB])dnl
    
      #
      tst_links_getservbyport_r="unknown"
      tst_proto_getservbyport_r="unknown"
      tst_compi_getservbyport_r="unknown"
      tst_allow_getservbyport_r="unknown"
      tst_nargs_getservbyport_r="unknown"
      #
      AC_MSG_CHECKING([if getservbyport_r can be linked])
      AC_LINK_IFELSE([
        AC_LANG_FUNC_LINK_TRY([getservbyport_r])
      ],[
        AC_MSG_RESULT([yes])
        tst_links_getservbyport_r="yes"
      ],[
        AC_MSG_RESULT([no])
        tst_links_getservbyport_r="no"
      ])
      #
      if test "$tst_links_getservbyport_r" = "yes"; then
        AC_MSG_CHECKING([if getservbyport_r is prototyped])
        AC_EGREP_CPP([getservbyport_r],[
          $curl_includes_netdb
        ],[
          AC_MSG_RESULT([yes])
          tst_proto_getservbyport_r="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_proto_getservbyport_r="no"
        ])
      fi
      #
      if test "$tst_proto_getservbyport_r" = "yes"; then
        if test "$tst_nargs_getservbyport_r" = "unknown"; then
          AC_MSG_CHECKING([if getservbyport_r takes 4 args.])
          AC_COMPILE_IFELSE([
            AC_LANG_PROGRAM([[
              $curl_includes_netdb
            ]],[[
              if(0 != getservbyport_r(0, 0, 0, 0))
                return 1;
            ]])
          ],[
            AC_MSG_RESULT([yes])
            tst_compi_getservbyport_r="yes"
            tst_nargs_getservbyport_r="4"
          ],[
            AC_MSG_RESULT([no])
            tst_compi_getservbyport_r="no"
          ])
        fi
        if test "$tst_nargs_getservbyport_r" = "unknown"; then
          AC_MSG_CHECKING([if getservbyport_r takes 5 args.])
          AC_COMPILE_IFELSE([
            AC_LANG_PROGRAM([[
              $curl_includes_netdb
            ]],[[
              if(0 != getservbyport_r(0, 0, 0, 0, 0))
                return 1;
            ]])
          ],[
            AC_MSG_RESULT([yes])
            tst_compi_getservbyport_r="yes"
            tst_nargs_getservbyport_r="5"
          ],[
            AC_MSG_RESULT([no])
            tst_compi_getservbyport_r="no"
          ])
        fi
        if test "$tst_nargs_getservbyport_r" = "unknown"; then
          AC_MSG_CHECKING([if getservbyport_r takes 6 args.])
          AC_COMPILE_IFELSE([
            AC_LANG_PROGRAM([[
              $curl_includes_netdb
            ]],[[
              if(0 != getservbyport_r(0, 0, 0, 0, 0, 0))
                return 1;
            ]])
          ],[
            AC_MSG_RESULT([yes])
            tst_compi_getservbyport_r="yes"
            tst_nargs_getservbyport_r="6"
          ],[
            AC_MSG_RESULT([no])
            tst_compi_getservbyport_r="no"
          ])
        fi
        AC_MSG_CHECKING([if getservbyport_r is compilable])
        if test "$tst_compi_getservbyport_r" = "yes"; then
          AC_MSG_RESULT([yes])
        else
          AC_MSG_RESULT([no])
        fi
      fi
      #
      if test "$tst_compi_getservbyport_r" = "yes"; then
        AC_MSG_CHECKING([if getservbyport_r usage allowed])
        if test "x$curl_disallow_getservbyport_r" != "xyes"; then
          AC_MSG_RESULT([yes])
          tst_allow_getservbyport_r="yes"
        else
          AC_MSG_RESULT([no])
          tst_allow_getservbyport_r="no"
        fi
      fi
      #
      AC_MSG_CHECKING([if getservbyport_r might be used])
      if test "$tst_links_getservbyport_r" = "yes" &&
         test "$tst_proto_getservbyport_r" = "yes" &&
         test "$tst_compi_getservbyport_r" = "yes" &&
         test "$tst_allow_getservbyport_r" = "yes"; then
        AC_MSG_RESULT([yes])
        AC_DEFINE_UNQUOTED(HAVE_GETSERVBYPORT_R, 1,
          [Define to 1 if you have the getservbyport_r function.])
        AC_DEFINE_UNQUOTED(GETSERVBYPORT_R_ARGS, $tst_nargs_getservbyport_r,
          [Specifies the number of arguments to getservbyport_r])
        if test "$tst_nargs_getservbyport_r" -eq "4"; then
          AC_DEFINE(GETSERVBYPORT_R_BUFSIZE, sizeof(struct servent_data),
            [Specifies the size of the buffer to pass to getservbyport_r])
        else
          AC_DEFINE(GETSERVBYPORT_R_BUFSIZE, 4096,
            [Specifies the size of the buffer to pass to getservbyport_r])
        fi
        ac_cv_func_getservbyport_r="yes"
      else
        AC_MSG_RESULT([no])
        ac_cv_func_getservbyport_r="no"
      fi
    ])
    
    
    
    dnl CURL_CHECK_FUNC_GMTIME_R
    dnl -------------------------------------------------
    dnl Verify if gmtime_r is available, prototyped, can
    dnl be compiled and seems to work. If all of these are
    dnl true, and usage has not been previously disallowed
    dnl with shell variable curl_disallow_gmtime_r, then
    dnl HAVE_GMTIME_R will be defined.
    
    AC_DEFUN([CURL_CHECK_FUNC_GMTIME_R], [
    
      AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl
    
      AC_REQUIRE([CURL_INCLUDES_TIME])dnl
      #
      tst_links_gmtime_r="unknown"
      tst_proto_gmtime_r="unknown"
      tst_compi_gmtime_r="unknown"
      tst_works_gmtime_r="unknown"
      tst_allow_gmtime_r="unknown"
      #
      AC_MSG_CHECKING([if gmtime_r can be linked])
      AC_LINK_IFELSE([
        AC_LANG_FUNC_LINK_TRY([gmtime_r])
      ],[
        AC_MSG_RESULT([yes])
        tst_links_gmtime_r="yes"
      ],[
        AC_MSG_RESULT([no])
        tst_links_gmtime_r="no"
      ])
      #
      if test "$tst_links_gmtime_r" = "yes"; then
        AC_MSG_CHECKING([if gmtime_r is prototyped])
        AC_EGREP_CPP([gmtime_r],[
          $curl_includes_time
        ],[
          AC_MSG_RESULT([yes])
          tst_proto_gmtime_r="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_proto_gmtime_r="no"
        ])
      fi
      #
      if test "$tst_proto_gmtime_r" = "yes"; then
        AC_MSG_CHECKING([if gmtime_r is compilable])
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
            $curl_includes_time
          ]],[[
    
            if(0 != gmtime_r(0, 0))
              return 1;
    
          ]])
        ],[
          AC_MSG_RESULT([yes])
          tst_compi_gmtime_r="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_compi_gmtime_r="no"
        ])
      fi
      #
      dnl only do runtime verification when not cross-compiling
      if test "x$cross_compiling" != "xyes" &&
        test "$tst_compi_gmtime_r" = "yes"; then
        AC_MSG_CHECKING([if gmtime_r seems to work])
        AC_RUN_IFELSE([
          AC_LANG_PROGRAM([[
    
            $curl_includes_stdlib
    
            $curl_includes_time
          ]],[[
            time_t local = 1170352587;
            struct tm *gmt = 0;
            struct tm result;
            gmt = gmtime_r(&local, &result);
            if(gmt)
              exit(0);
            else
              exit(1);
          ]])
        ],[
          AC_MSG_RESULT([yes])
          tst_works_gmtime_r="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_works_gmtime_r="no"
        ])
      fi
      #
    
      if test "$tst_compi_gmtime_r" = "yes" &&
        test "$tst_works_gmtime_r" != "no"; then
    
        AC_MSG_CHECKING([if gmtime_r usage allowed])
        if test "x$curl_disallow_gmtime_r" != "xyes"; then
          AC_MSG_RESULT([yes])
          tst_allow_gmtime_r="yes"
        else
          AC_MSG_RESULT([no])
          tst_allow_gmtime_r="no"
        fi
      fi
      #
      AC_MSG_CHECKING([if gmtime_r might be used])
      if test "$tst_links_gmtime_r" = "yes" &&
         test "$tst_proto_gmtime_r" = "yes" &&
         test "$tst_compi_gmtime_r" = "yes" &&
         test "$tst_allow_gmtime_r" = "yes" &&
         test "$tst_works_gmtime_r" != "no"; then
        AC_MSG_RESULT([yes])
        AC_DEFINE_UNQUOTED(HAVE_GMTIME_R, 1,
          [Define to 1 if you have a working gmtime_r function.])
        ac_cv_func_gmtime_r="yes"
      else
        AC_MSG_RESULT([no])
        ac_cv_func_gmtime_r="no"
      fi
    ])
    
    
    
    dnl CURL_CHECK_FUNC_INET_NTOA_R
    dnl -------------------------------------------------
    dnl Verify if inet_ntoa_r is available, prototyped,
    dnl and can be compiled. If all of these are true, and
    dnl usage has not been previously disallowed with
    dnl shell variable curl_disallow_inet_ntoa_r, then
    dnl HAVE_INET_NTOA_R will be defined.
    
    AC_DEFUN([CURL_CHECK_FUNC_INET_NTOA_R], [
      AC_REQUIRE([CURL_INCLUDES_ARPA_INET])dnl
      #
      tst_links_inet_ntoa_r="unknown"
      tst_proto_inet_ntoa_r="unknown"
      tst_compi_inet_ntoa_r="unknown"
      tst_allow_inet_ntoa_r="unknown"
      tst_nargs_inet_ntoa_r="unknown"
      #
      AC_MSG_CHECKING([if inet_ntoa_r can be linked])
      AC_LINK_IFELSE([
        AC_LANG_FUNC_LINK_TRY([inet_ntoa_r])
      ],[
        AC_MSG_RESULT([yes])
        tst_links_inet_ntoa_r="yes"
      ],[
        AC_MSG_RESULT([no])
        tst_links_inet_ntoa_r="no"
      ])
      #
      if test "$tst_links_inet_ntoa_r" = "yes"; then
        AC_MSG_CHECKING([if inet_ntoa_r is prototyped])
        AC_EGREP_CPP([inet_ntoa_r],[
          $curl_includes_arpa_inet
        ],[
          AC_MSG_RESULT([yes])
          tst_proto_inet_ntoa_r="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_proto_inet_ntoa_r="no"
        ])
      fi
      #
      if test "$tst_proto_inet_ntoa_r" = "yes"; then
        if test "$tst_nargs_inet_ntoa_r" = "unknown"; then
          AC_MSG_CHECKING([if inet_ntoa_r takes 2 args.])
          AC_COMPILE_IFELSE([
            AC_LANG_PROGRAM([[
              $curl_includes_arpa_inet
            ]],[[
              struct in_addr addr;
              if(0 != inet_ntoa_r(addr, 0))
                return 1;
            ]])
          ],[
            AC_MSG_RESULT([yes])
            tst_compi_inet_ntoa_r="yes"
            tst_nargs_inet_ntoa_r="2"
          ],[
            AC_MSG_RESULT([no])
            tst_compi_inet_ntoa_r="no"
          ])
        fi
        if test "$tst_nargs_inet_ntoa_r" = "unknown"; then
          AC_MSG_CHECKING([if inet_ntoa_r takes 3 args.])
          AC_COMPILE_IFELSE([
            AC_LANG_PROGRAM([[
              $curl_includes_arpa_inet
            ]],[[
              struct in_addr addr;
              if(0 != inet_ntoa_r(addr, 0, 0))
                return 1;
            ]])
          ],[
            AC_MSG_RESULT([yes])
            tst_compi_inet_ntoa_r="yes"
            tst_nargs_inet_ntoa_r="3"
          ],[
            AC_MSG_RESULT([no])
            tst_compi_inet_ntoa_r="no"
          ])
        fi
        AC_MSG_CHECKING([if inet_ntoa_r is compilable])
        if test "$tst_compi_inet_ntoa_r" = "yes"; then
          AC_MSG_RESULT([yes])
        else
          AC_MSG_RESULT([no])
        fi
      fi
      #
      if test "$tst_compi_inet_ntoa_r" = "yes"; then
        AC_MSG_CHECKING([if inet_ntoa_r usage allowed])
        if test "x$curl_disallow_inet_ntoa_r" != "xyes"; then
          AC_MSG_RESULT([yes])
          tst_allow_inet_ntoa_r="yes"
        else
          AC_MSG_RESULT([no])
          tst_allow_inet_ntoa_r="no"
        fi
      fi
      #
      AC_MSG_CHECKING([if inet_ntoa_r might be used])
      if test "$tst_links_inet_ntoa_r" = "yes" &&
         test "$tst_proto_inet_ntoa_r" = "yes" &&
         test "$tst_compi_inet_ntoa_r" = "yes" &&
         test "$tst_allow_inet_ntoa_r" = "yes"; then
        AC_MSG_RESULT([yes])
        AC_DEFINE_UNQUOTED(HAVE_INET_NTOA_R, 1,
          [Define to 1 if you have the inet_ntoa_r function.])
        dnl AC_DEFINE_UNQUOTED(INET_NTOA_R_ARGS, $tst_nargs_inet_ntoa_r,
        dnl   [Specifies the number of arguments to inet_ntoa_r])
        #
        if test "$tst_nargs_inet_ntoa_r" -eq "2"; then
          AC_DEFINE(HAVE_INET_NTOA_R_2, 1, [inet_ntoa_r() takes 2 args])
        elif test "$tst_nargs_inet_ntoa_r" -eq "3"; then
          AC_DEFINE(HAVE_INET_NTOA_R_3, 1, [inet_ntoa_r() takes 3 args])
        fi
        #
        ac_cv_func_inet_ntoa_r="yes"
      else
        AC_MSG_RESULT([no])
        ac_cv_func_inet_ntoa_r="no"
      fi
    ])
    
    
    
    dnl CURL_CHECK_FUNC_INET_NTOP
    dnl -------------------------------------------------
    dnl Verify if inet_ntop is available, prototyped, can
    dnl be compiled and seems to work. If all of these are
    dnl true, and usage has not been previously disallowed
    dnl with shell variable curl_disallow_inet_ntop, then
    dnl HAVE_INET_NTOP will be defined.
    
    AC_DEFUN([CURL_CHECK_FUNC_INET_NTOP], [
    
      AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl
    
      AC_REQUIRE([CURL_INCLUDES_ARPA_INET])dnl
      AC_REQUIRE([CURL_INCLUDES_STRING])dnl
      #
      tst_links_inet_ntop="unknown"
      tst_proto_inet_ntop="unknown"
      tst_compi_inet_ntop="unknown"
      tst_works_inet_ntop="unknown"
      tst_allow_inet_ntop="unknown"
      #
      AC_MSG_CHECKING([if inet_ntop can be linked])
      AC_LINK_IFELSE([
        AC_LANG_FUNC_LINK_TRY([inet_ntop])
      ],[
        AC_MSG_RESULT([yes])
        tst_links_inet_ntop="yes"
      ],[
        AC_MSG_RESULT([no])
        tst_links_inet_ntop="no"
      ])
      #
      if test "$tst_links_inet_ntop" = "yes"; then
        AC_MSG_CHECKING([if inet_ntop is prototyped])
        AC_EGREP_CPP([inet_ntop],[
          $curl_includes_arpa_inet
        ],[
          AC_MSG_RESULT([yes])
          tst_proto_inet_ntop="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_proto_inet_ntop="no"
        ])
      fi
      #
      if test "$tst_proto_inet_ntop" = "yes"; then
        AC_MSG_CHECKING([if inet_ntop is compilable])
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
            $curl_includes_arpa_inet
          ]],[[
            if(0 != inet_ntop(0, 0, 0, 0))
              return 1;
          ]])
        ],[
          AC_MSG_RESULT([yes])
          tst_compi_inet_ntop="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_compi_inet_ntop="no"
        ])
      fi
      #
      dnl only do runtime verification when not cross-compiling
      if test "x$cross_compiling" != "xyes" &&
        test "$tst_compi_inet_ntop" = "yes"; then
        AC_MSG_CHECKING([if inet_ntop seems to work])
        AC_RUN_IFELSE([
          AC_LANG_PROGRAM([[
    
            $curl_includes_stdlib
    
            $curl_includes_arpa_inet
            $curl_includes_string
          ]],[[
            char ipv6res[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];
            char ipv4res[sizeof "255.255.255.255"];
            unsigned char ipv6a[26];
            unsigned char ipv4a[5];
            char *ipv6ptr = 0;
            char *ipv4ptr = 0;
            /* - */
            ipv4res[0] = '\0';
            ipv4a[0] = 0xc0;
            ipv4a[1] = 0xa8;
            ipv4a[2] = 0x64;
            ipv4a[3] = 0x01;
            ipv4a[4] = 0x01;
            /* - */
            ipv4ptr = inet_ntop(AF_INET, ipv4a, ipv4res, sizeof(ipv4res));
            if(!ipv4ptr)
              exit(1); /* fail */
            if(ipv4ptr != ipv4res)
              exit(1); /* fail */
            if(!ipv4ptr[0])
              exit(1); /* fail */
            if(memcmp(ipv4res, "192.168.100.1", 13) != 0)
              exit(1); /* fail */
            /* - */
            ipv6res[0] = '\0';
            memset(ipv6a, 0, sizeof(ipv6a));
            ipv6a[0] = 0xfe;
            ipv6a[1] = 0x80;
            ipv6a[8] = 0x02;
            ipv6a[9] = 0x14;
            ipv6a[10] = 0x4f;
            ipv6a[11] = 0xff;
            ipv6a[12] = 0xfe;
            ipv6a[13] = 0x0b;
            ipv6a[14] = 0x76;
            ipv6a[15] = 0xc8;
            ipv6a[25] = 0x01;
            /* - */
            ipv6ptr = inet_ntop(AF_INET6, ipv6a, ipv6res, sizeof(ipv6res));
            if(!ipv6ptr)
              exit(1); /* fail */
            if(ipv6ptr != ipv6res)
              exit(1); /* fail */
            if(!ipv6ptr[0])
              exit(1); /* fail */
            if(memcmp(ipv6res, "fe80::214:4fff:fe0b:76c8", 24) != 0)
              exit(1); /* fail */
            /* - */
            exit(0);
          ]])
        ],[
          AC_MSG_RESULT([yes])
          tst_works_inet_ntop="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_works_inet_ntop="no"
        ])
      fi
      #
      if test "$tst_compi_inet_ntop" = "yes" &&
        test "$tst_works_inet_ntop" != "no"; then
        AC_MSG_CHECKING([if inet_ntop usage allowed])
        if test "x$curl_disallow_inet_ntop" != "xyes"; then
          AC_MSG_RESULT([yes])
          tst_allow_inet_ntop="yes"
        else
          AC_MSG_RESULT([no])
          tst_allow_inet_ntop="no"
        fi
      fi
      #
      AC_MSG_CHECKING([if inet_ntop might be used])
      if test "$tst_links_inet_ntop" = "yes" &&
         test "$tst_proto_inet_ntop" = "yes" &&
         test "$tst_compi_inet_ntop" = "yes" &&
         test "$tst_allow_inet_ntop" = "yes" &&
         test "$tst_works_inet_ntop" != "no"; then
        AC_MSG_RESULT([yes])
        AC_DEFINE_UNQUOTED(HAVE_INET_NTOP, 1,
          [Define to 1 if you have a IPv6 capable working inet_ntop function.])
        ac_cv_func_inet_ntop="yes"
      else
        AC_MSG_RESULT([no])
        ac_cv_func_inet_ntop="no"
      fi
    ])
    
    
    
    dnl CURL_CHECK_FUNC_INET_PTON
    dnl -------------------------------------------------
    dnl Verify if inet_pton is available, prototyped, can
    dnl be compiled and seems to work. If all of these are
    dnl true, and usage has not been previously disallowed
    dnl with shell variable curl_disallow_inet_pton, then
    dnl HAVE_INET_PTON will be defined.
    
    AC_DEFUN([CURL_CHECK_FUNC_INET_PTON], [
    
      AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl
    
      AC_REQUIRE([CURL_INCLUDES_ARPA_INET])dnl
      AC_REQUIRE([CURL_INCLUDES_STRING])dnl
      #
      tst_links_inet_pton="unknown"
      tst_proto_inet_pton="unknown"
      tst_compi_inet_pton="unknown"
      tst_works_inet_pton="unknown"
      tst_allow_inet_pton="unknown"
      #
      AC_MSG_CHECKING([if inet_pton can be linked])
      AC_LINK_IFELSE([
        AC_LANG_FUNC_LINK_TRY([inet_pton])
      ],[
        AC_MSG_RESULT([yes])
        tst_links_inet_pton="yes"
      ],[
        AC_MSG_RESULT([no])
        tst_links_inet_pton="no"
      ])
      #
      if test "$tst_links_inet_pton" = "yes"; then
        AC_MSG_CHECKING([if inet_pton is prototyped])
        AC_EGREP_CPP([inet_pton],[
          $curl_includes_arpa_inet
        ],[
          AC_MSG_RESULT([yes])
          tst_proto_inet_pton="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_proto_inet_pton="no"
        ])
      fi
      #
      if test "$tst_proto_inet_pton" = "yes"; then
        AC_MSG_CHECKING([if inet_pton is compilable])
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
            $curl_includes_arpa_inet
          ]],[[
            if(0 != inet_pton(0, 0, 0))
              return 1;
          ]])
        ],[
          AC_MSG_RESULT([yes])
          tst_compi_inet_pton="yes"
        ],[
          AC_MSG_RESULT([no])
          tst_compi_inet_pton="no"
        ])
      fi
      #
      dnl only do runtime verification when not cross-compiling
      if test "x$cross_compiling" != "xyes" &&
        test "$tst_compi_inet_pton" = "yes"; then
        AC_MSG_CHECKING([if inet_pton seems to work])
        AC_RUN_IFELSE([
          AC_LANG_PROGRAM([[
    
            $curl_includes_stdlib
    
            $curl_includes_arpa_inet
            $curl_includes_string
          ]],[[
    
            unsigned char ipv6a[16+1];
            unsigned char ipv4a[4+1];
    
            const char *ipv6src = "fe80::214:4fff:fe0b:76c8";
            const char *ipv4src = "192.168.100.1";
            /* - */
            memset(ipv4a, 1, sizeof(ipv4a));
            if(1 != inet_pton(AF_INET, ipv4src, ipv4a))
              exit(1); /* fail */
            /* - */
            if( (ipv4a[0] != 0xc0) ||
                (ipv4a[1] != 0xa8) ||
                (ipv4a[2] != 0x64) ||
                (ipv4a[3] != 0x01) ||
                (ipv4a[4] != 0x01) )
              exit(1); /* fail */
            /* - */
            memset(ipv6a, 1, sizeof(ipv6a));
            if(1 != inet_pton(AF_INET6, ipv6src, ipv6a))
              exit(1); /* fail */
            /* - */
            if( (ipv6a[0]  != 0xfe) ||
                (ipv6a[1]  != 0x80) ||
                (ipv6a[8]  != 0x02) ||
                (ipv6a[9]  != 0x14) ||
                (ipv6a[10] != 0x4f) ||
                (ipv6a[11] != 0xff) ||
                (ipv6a[12] != 0xfe) ||
                (ipv6a[13] != 0x0b) ||