Loading Makefile.am +4 −4 Original line number Diff line number Diff line Loading @@ -6,8 +6,8 @@ AUTOMAKE_OPTIONS = foreign no-dependencies EXTRA_DIST = \ CHANGES LEGAL maketgz MITX.txt MPL-1.1.txt \ config-win32.h reconf packages/README Makefile.dist \ curl-config.in libtool build_vms.com config-riscos.h \ config-win32.h reconf Makefile.dist \ curl-config.in build_vms.com config-riscos.h \ config-vms.h bin_SCRIPTS = curl-config Loading acinclude.m4 0 → 100644 +325 −0 Original line number Diff line number Diff line dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc. So we dnl have to test to find something that will work. AC_DEFUN([TYPE_SOCKLEN_T], [ AC_CHECK_TYPE([socklen_t], ,[ AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([curl_cv_socklen_t_equiv], [ # Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername curl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t unsigned long "unsigned long"; do AC_TRY_COMPILE([ #include <sys/types.h> #include <sys/socket.h> int getpeername (int, $arg2 *, $t *); ],[ $t len; getpeername(0,0,&len); ],[ curl_cv_socklen_t_equiv="$t" break ]) done done if test "x$curl_cv_socklen_t_equiv" = x; then AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) fi ]) AC_MSG_RESULT($curl_cv_socklen_t_equiv) AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv, [type to use in place of socklen_t if not defined])], [#include <sys/types.h> #include <sys/socket.h>]) ]) dnl ************************************************************ dnl check for "localhost", if it doesn't exist, we can't do the dnl gethostbyname_r tests! dnl AC_DEFUN(CURL_CHECK_WORKING_RESOLVER,[ AC_MSG_CHECKING([if "localhost" resolves]) AC_TRY_RUN([ #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent *h; h = gethostbyname("localhost"); exit (h == NULL ? 1 : 0); }],[ AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_ERROR([can't figure out gethostbyname_r() since localhost doesn't resolve]) ] ) ]) dnl ************************************************************ dnl check for working getaddrinfo() dnl AC_DEFUN(CURL_CHECK_WORKING_GETADDRINFO,[ AC_CACHE_CHECK(for working getaddrinfo, ac_cv_working_getaddrinfo,[ AC_TRY_RUN( [ #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> void main(void) { struct addrinfo hints, *ai; int error; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; error = getaddrinfo("127.0.0.1", "8080", &hints, &ai); if (error) { exit(1); } else { exit(0); } } ],[ ac_cv_working_getaddrinfo="yes" ],[ ac_cv_working_getaddrinfo="no" ],[ ac_cv_working_getaddrinfo="yes" ])]) if test "$ac_cv_working_getaddrinfo" = "yes"; then AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if getaddrinfo exists and works]) AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support]) IPV6_ENABLED=1 AC_SUBST(IPV6_ENABLED) fi ]) AC_DEFUN(CURL_CHECK_LOCALTIME_R, [ dnl check for a few thread-safe functions AC_CHECK_FUNCS(localtime_r,[ AC_MSG_CHECKING(whether localtime_r is declared) AC_EGREP_CPP(localtime_r,[ #include <time.h>],[ AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(whether localtime_r with -D_REENTRANT is declared) AC_EGREP_CPP(localtime_r,[ #define _REENTRANT #include <time.h>],[ AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) ]) AC_DEFUN(CURL_CHECK_INET_NTOA_R, [ dnl determine if function definition for inet_ntoa_r exists. AC_CHECK_FUNCS(inet_ntoa_r,[ AC_MSG_CHECKING(whether inet_ntoa_r is declared) AC_EGREP_CPP(inet_ntoa_r,[ #include <arpa/inet.h>],[ AC_DEFINE(HAVE_INET_NTOA_R_DECL) AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(whether inet_ntoa_r with -D_REENTRANT is declared) AC_EGREP_CPP(inet_ntoa_r,[ #define _REENTRANT #include <arpa/inet.h>],[ AC_DEFINE(HAVE_INET_NTOA_R_DECL) AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) ]) AC_DEFUN(CURL_CHECK_GETHOSTBYADDR_R, [ dnl check for number of arguments to gethostbyaddr_r. it might take dnl either 5, 7, or 8 arguments. AC_CHECK_FUNCS(gethostbyaddr_r,[ AC_MSG_CHECKING(if gethostbyaddr_r takes 5 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; struct hostent_data hdata; int rc; rc = gethostbyaddr_r(address, length, type, &h, &hdata);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_5) ac_cv_gethostbyaddr_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r with -D_REENTRANT takes 5 arguments) AC_TRY_COMPILE([ #define _REENTRANT #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; struct hostent_data hdata; int rc; rc = gethostbyaddr_r(address, length, type, &h, &hdata);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_5) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyaddr_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r takes 7 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; char buffer[8192]; int h_errnop; struct hostent * hp; hp = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &h_errnop);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_7) ac_cv_gethostbyaddr_args=7],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r takes 8 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; char buffer[8192]; int h_errnop; struct hostent * hp; int rc; rc = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &hp, &h_errnop);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_8) ac_cv_gethostbyaddr_args=8],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyaddr_r"])])])])]) ]) AC_DEFUN(CURL_CHECK_GETHOSTBYNAME_R, [ dnl check for number of arguments to gethostbyname_r. it might take dnl either 3, 5, or 6 arguments. AC_CHECK_FUNCS(gethostbyname_r,[ AC_MSG_CHECKING(if gethostbyname_r takes 3 arguments) AC_TRY_RUN([ #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent_data hdata; char *name = "localhost"; int rc; memset(&h, 0, sizeof(struct hostent)); memset(&hdata, 0, sizeof(struct hostent_data)); rc = gethostbyname_r(name, &h, &hdata); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r with -D_REENTRANT takes 3 arguments) AC_TRY_RUN([ #define _REENTRANT #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent_data hdata; char *name = "localhost"; int rc; memset(&h, 0, sizeof(struct hostent)); memset(&hdata, 0, sizeof(struct hostent_data)); rc = gethostbyname_r(name, &h, &hdata); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r takes 5 arguments) AC_TRY_RUN([ #include <sys/types.h> #include <netdb.h> int main () { struct hostent *hp; struct hostent h; char *name = "localhost"; char buffer[8192]; int h_errno; hp = gethostbyname_r(name, &h, buffer, 8192, &h_errno); exit (hp == NULL ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_5) ac_cv_gethostbyname_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r takes 6 arguments) AC_TRY_RUN([ #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent *hp; char *name = "localhost"; char buf[8192]; int rc; int h_errno; rc = gethostbyname_r(name, &h, buf, 8192, &hp, &h_errno); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_6) ac_cv_gethostbyname_args=6],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyname_r"], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])]) if test "$ac_cv_func_gethostbyname_r" = "yes"; then if test "$ac_cv_gethostbyname_args" = "0"; then dnl there's a gethostbyname_r() function, but we don't know how dnl many arguments it wants! AC_MSG_ERROR([couldn't figure out how to use gethostbyname_r()]) fi fi ]) configure.in +1 −306 Original line number Diff line number Diff line Loading @@ -64,292 +64,6 @@ AC_ARG_ENABLE(debug, AC_MSG_RESULT(no) ) dnl ************************************************************ dnl check for "localhost", if it doesn't exist, we can't do the dnl gethostbyname_r tests! dnl AC_DEFUN(CURL_CHECK_WORKING_RESOLVER,[ AC_MSG_CHECKING([if "localhost" resolves]) AC_TRY_RUN([ #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent *h; h = gethostbyname("localhost"); exit (h == NULL ? 1 : 0); }],[ AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_ERROR([can't figure out gethostbyname_r() since localhost doesn't resolve]) ] ) ]) dnl ************************************************************ dnl check for working getaddrinfo() dnl AC_DEFUN(CURL_CHECK_WORKING_GETADDRINFO,[ AC_CACHE_CHECK(for working getaddrinfo, ac_cv_working_getaddrinfo,[ AC_TRY_RUN( [ #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> void main(void) { struct addrinfo hints, *ai; int error; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; error = getaddrinfo("127.0.0.1", "8080", &hints, &ai); if (error) { exit(1); } else { exit(0); } } ],[ ac_cv_working_getaddrinfo="yes" ],[ ac_cv_working_getaddrinfo="no" ],[ ac_cv_working_getaddrinfo="yes" ])]) if test "$ac_cv_working_getaddrinfo" = "yes"; then AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if getaddrinfo exists and works]) AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support]) IPV6_ENABLED=1 AC_SUBST(IPV6_ENABLED) fi ]) AC_DEFUN(CURL_CHECK_LOCALTIME_R, [ dnl check for a few thread-safe functions AC_CHECK_FUNCS(localtime_r,[ AC_MSG_CHECKING(whether localtime_r is declared) AC_EGREP_CPP(localtime_r,[ #include <time.h>],[ AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(whether localtime_r with -D_REENTRANT is declared) AC_EGREP_CPP(localtime_r,[ #define _REENTRANT #include <time.h>],[ AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) ]) AC_DEFUN(CURL_CHECK_INET_NTOA_R, [ dnl determine if function definition for inet_ntoa_r exists. AC_CHECK_FUNCS(inet_ntoa_r,[ AC_MSG_CHECKING(whether inet_ntoa_r is declared) AC_EGREP_CPP(inet_ntoa_r,[ #include <arpa/inet.h>],[ AC_DEFINE(HAVE_INET_NTOA_R_DECL) AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(whether inet_ntoa_r with -D_REENTRANT is declared) AC_EGREP_CPP(inet_ntoa_r,[ #define _REENTRANT #include <arpa/inet.h>],[ AC_DEFINE(HAVE_INET_NTOA_R_DECL) AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) ]) AC_DEFUN(CURL_CHECK_GETHOSTBYADDR_R, [ dnl check for number of arguments to gethostbyaddr_r. it might take dnl either 5, 7, or 8 arguments. AC_CHECK_FUNCS(gethostbyaddr_r,[ AC_MSG_CHECKING(if gethostbyaddr_r takes 5 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; struct hostent_data hdata; int rc; rc = gethostbyaddr_r(address, length, type, &h, &hdata);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_5) ac_cv_gethostbyaddr_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r with -D_REENTRANT takes 5 arguments) AC_TRY_COMPILE([ #define _REENTRANT #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; struct hostent_data hdata; int rc; rc = gethostbyaddr_r(address, length, type, &h, &hdata);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_5) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyaddr_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r takes 7 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; char buffer[8192]; int h_errnop; struct hostent * hp; hp = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &h_errnop);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_7) ac_cv_gethostbyaddr_args=7],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r takes 8 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; char buffer[8192]; int h_errnop; struct hostent * hp; int rc; rc = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &hp, &h_errnop);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_8) ac_cv_gethostbyaddr_args=8],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyaddr_r"])])])])]) ]) AC_DEFUN(CURL_CHECK_GETHOSTBYNAME_R, [ dnl check for number of arguments to gethostbyname_r. it might take dnl either 3, 5, or 6 arguments. AC_CHECK_FUNCS(gethostbyname_r,[ AC_MSG_CHECKING(if gethostbyname_r takes 3 arguments) AC_TRY_RUN([ #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent_data hdata; char *name = "localhost"; int rc; memset(&h, 0, sizeof(struct hostent)); memset(&hdata, 0, sizeof(struct hostent_data)); rc = gethostbyname_r(name, &h, &hdata); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r with -D_REENTRANT takes 3 arguments) AC_TRY_RUN([ #define _REENTRANT #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent_data hdata; char *name = "localhost"; int rc; memset(&h, 0, sizeof(struct hostent)); memset(&hdata, 0, sizeof(struct hostent_data)); rc = gethostbyname_r(name, &h, &hdata); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r takes 5 arguments) AC_TRY_RUN([ #include <sys/types.h> #include <netdb.h> int main () { struct hostent *hp; struct hostent h; char *name = "localhost"; char buffer[8192]; int h_errno; hp = gethostbyname_r(name, &h, buffer, 8192, &h_errno); exit (hp == NULL ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_5) ac_cv_gethostbyname_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r takes 6 arguments) AC_TRY_RUN([ #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent *hp; char *name = "localhost"; char buf[8192]; int rc; int h_errno; rc = gethostbyname_r(name, &h, buf, 8192, &hp, &h_errno); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_6) ac_cv_gethostbyname_args=6],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyname_r"], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])]) if test "$ac_cv_func_gethostbyname_r" = "yes"; then if test "$ac_cv_gethostbyname_args" = "0"; then dnl there's a gethostbyname_r() function, but we don't know how dnl many arguments it wants! AC_MSG_ERROR([couldn't figure out how to use gethostbyname_r()]) fi fi ]) dnl ********************************************************************** dnl Checks for IPv6 dnl ********************************************************************** Loading Loading @@ -782,26 +496,7 @@ AC_CHECK_SIZEOF(long long, 4) # check for ssize_t AC_CHECK_TYPE(ssize_t, int) dnl dnl We can't just AC_CHECK_TYPE() for socklen_t since it doesn't appear dnl in the standard headers. We egrep for it in the socket headers and dnl if it is used there we assume we have the type defined, otherwise dnl we search for it with AC_CHECK_TYPE() the "normal" way dnl if test "$ac_cv_header_sys_socket_h" = "yes"; then AC_MSG_CHECKING(for socklen_t in sys/socket.h) AC_EGREP_HEADER(socklen_t, sys/socket.h, socklen_t=yes AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) fi if test "$socklen_t" != "yes"; then # check for socklen_t the standard way if it wasn't found before AC_CHECK_TYPE(socklen_t, int) fi TYPE_SOCKLEN_T dnl Checks for library functions. dnl AC_PROG_GCC_TRADITIONAL Loading lib/Makefile.am +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ # $Id$ # AUTOMAKE_OPTIONS = foreign AUTOMAKE_OPTIONS = foreign no-dependencies EXTRA_DIST = getdate.y \ Makefile.b32 Makefile.b32.resp Makefile.m32 Makefile.vc6 \ Loading Loading
Makefile.am +4 −4 Original line number Diff line number Diff line Loading @@ -6,8 +6,8 @@ AUTOMAKE_OPTIONS = foreign no-dependencies EXTRA_DIST = \ CHANGES LEGAL maketgz MITX.txt MPL-1.1.txt \ config-win32.h reconf packages/README Makefile.dist \ curl-config.in libtool build_vms.com config-riscos.h \ config-win32.h reconf Makefile.dist \ curl-config.in build_vms.com config-riscos.h \ config-vms.h bin_SCRIPTS = curl-config Loading
acinclude.m4 0 → 100644 +325 −0 Original line number Diff line number Diff line dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc. So we dnl have to test to find something that will work. AC_DEFUN([TYPE_SOCKLEN_T], [ AC_CHECK_TYPE([socklen_t], ,[ AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([curl_cv_socklen_t_equiv], [ # Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername curl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t unsigned long "unsigned long"; do AC_TRY_COMPILE([ #include <sys/types.h> #include <sys/socket.h> int getpeername (int, $arg2 *, $t *); ],[ $t len; getpeername(0,0,&len); ],[ curl_cv_socklen_t_equiv="$t" break ]) done done if test "x$curl_cv_socklen_t_equiv" = x; then AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) fi ]) AC_MSG_RESULT($curl_cv_socklen_t_equiv) AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv, [type to use in place of socklen_t if not defined])], [#include <sys/types.h> #include <sys/socket.h>]) ]) dnl ************************************************************ dnl check for "localhost", if it doesn't exist, we can't do the dnl gethostbyname_r tests! dnl AC_DEFUN(CURL_CHECK_WORKING_RESOLVER,[ AC_MSG_CHECKING([if "localhost" resolves]) AC_TRY_RUN([ #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent *h; h = gethostbyname("localhost"); exit (h == NULL ? 1 : 0); }],[ AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_ERROR([can't figure out gethostbyname_r() since localhost doesn't resolve]) ] ) ]) dnl ************************************************************ dnl check for working getaddrinfo() dnl AC_DEFUN(CURL_CHECK_WORKING_GETADDRINFO,[ AC_CACHE_CHECK(for working getaddrinfo, ac_cv_working_getaddrinfo,[ AC_TRY_RUN( [ #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> void main(void) { struct addrinfo hints, *ai; int error; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; error = getaddrinfo("127.0.0.1", "8080", &hints, &ai); if (error) { exit(1); } else { exit(0); } } ],[ ac_cv_working_getaddrinfo="yes" ],[ ac_cv_working_getaddrinfo="no" ],[ ac_cv_working_getaddrinfo="yes" ])]) if test "$ac_cv_working_getaddrinfo" = "yes"; then AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if getaddrinfo exists and works]) AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support]) IPV6_ENABLED=1 AC_SUBST(IPV6_ENABLED) fi ]) AC_DEFUN(CURL_CHECK_LOCALTIME_R, [ dnl check for a few thread-safe functions AC_CHECK_FUNCS(localtime_r,[ AC_MSG_CHECKING(whether localtime_r is declared) AC_EGREP_CPP(localtime_r,[ #include <time.h>],[ AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(whether localtime_r with -D_REENTRANT is declared) AC_EGREP_CPP(localtime_r,[ #define _REENTRANT #include <time.h>],[ AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) ]) AC_DEFUN(CURL_CHECK_INET_NTOA_R, [ dnl determine if function definition for inet_ntoa_r exists. AC_CHECK_FUNCS(inet_ntoa_r,[ AC_MSG_CHECKING(whether inet_ntoa_r is declared) AC_EGREP_CPP(inet_ntoa_r,[ #include <arpa/inet.h>],[ AC_DEFINE(HAVE_INET_NTOA_R_DECL) AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(whether inet_ntoa_r with -D_REENTRANT is declared) AC_EGREP_CPP(inet_ntoa_r,[ #define _REENTRANT #include <arpa/inet.h>],[ AC_DEFINE(HAVE_INET_NTOA_R_DECL) AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) ]) AC_DEFUN(CURL_CHECK_GETHOSTBYADDR_R, [ dnl check for number of arguments to gethostbyaddr_r. it might take dnl either 5, 7, or 8 arguments. AC_CHECK_FUNCS(gethostbyaddr_r,[ AC_MSG_CHECKING(if gethostbyaddr_r takes 5 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; struct hostent_data hdata; int rc; rc = gethostbyaddr_r(address, length, type, &h, &hdata);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_5) ac_cv_gethostbyaddr_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r with -D_REENTRANT takes 5 arguments) AC_TRY_COMPILE([ #define _REENTRANT #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; struct hostent_data hdata; int rc; rc = gethostbyaddr_r(address, length, type, &h, &hdata);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_5) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyaddr_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r takes 7 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; char buffer[8192]; int h_errnop; struct hostent * hp; hp = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &h_errnop);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_7) ac_cv_gethostbyaddr_args=7],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r takes 8 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; char buffer[8192]; int h_errnop; struct hostent * hp; int rc; rc = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &hp, &h_errnop);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_8) ac_cv_gethostbyaddr_args=8],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyaddr_r"])])])])]) ]) AC_DEFUN(CURL_CHECK_GETHOSTBYNAME_R, [ dnl check for number of arguments to gethostbyname_r. it might take dnl either 3, 5, or 6 arguments. AC_CHECK_FUNCS(gethostbyname_r,[ AC_MSG_CHECKING(if gethostbyname_r takes 3 arguments) AC_TRY_RUN([ #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent_data hdata; char *name = "localhost"; int rc; memset(&h, 0, sizeof(struct hostent)); memset(&hdata, 0, sizeof(struct hostent_data)); rc = gethostbyname_r(name, &h, &hdata); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r with -D_REENTRANT takes 3 arguments) AC_TRY_RUN([ #define _REENTRANT #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent_data hdata; char *name = "localhost"; int rc; memset(&h, 0, sizeof(struct hostent)); memset(&hdata, 0, sizeof(struct hostent_data)); rc = gethostbyname_r(name, &h, &hdata); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r takes 5 arguments) AC_TRY_RUN([ #include <sys/types.h> #include <netdb.h> int main () { struct hostent *hp; struct hostent h; char *name = "localhost"; char buffer[8192]; int h_errno; hp = gethostbyname_r(name, &h, buffer, 8192, &h_errno); exit (hp == NULL ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_5) ac_cv_gethostbyname_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r takes 6 arguments) AC_TRY_RUN([ #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent *hp; char *name = "localhost"; char buf[8192]; int rc; int h_errno; rc = gethostbyname_r(name, &h, buf, 8192, &hp, &h_errno); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_6) ac_cv_gethostbyname_args=6],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyname_r"], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])]) if test "$ac_cv_func_gethostbyname_r" = "yes"; then if test "$ac_cv_gethostbyname_args" = "0"; then dnl there's a gethostbyname_r() function, but we don't know how dnl many arguments it wants! AC_MSG_ERROR([couldn't figure out how to use gethostbyname_r()]) fi fi ])
configure.in +1 −306 Original line number Diff line number Diff line Loading @@ -64,292 +64,6 @@ AC_ARG_ENABLE(debug, AC_MSG_RESULT(no) ) dnl ************************************************************ dnl check for "localhost", if it doesn't exist, we can't do the dnl gethostbyname_r tests! dnl AC_DEFUN(CURL_CHECK_WORKING_RESOLVER,[ AC_MSG_CHECKING([if "localhost" resolves]) AC_TRY_RUN([ #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent *h; h = gethostbyname("localhost"); exit (h == NULL ? 1 : 0); }],[ AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_ERROR([can't figure out gethostbyname_r() since localhost doesn't resolve]) ] ) ]) dnl ************************************************************ dnl check for working getaddrinfo() dnl AC_DEFUN(CURL_CHECK_WORKING_GETADDRINFO,[ AC_CACHE_CHECK(for working getaddrinfo, ac_cv_working_getaddrinfo,[ AC_TRY_RUN( [ #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> void main(void) { struct addrinfo hints, *ai; int error; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; error = getaddrinfo("127.0.0.1", "8080", &hints, &ai); if (error) { exit(1); } else { exit(0); } } ],[ ac_cv_working_getaddrinfo="yes" ],[ ac_cv_working_getaddrinfo="no" ],[ ac_cv_working_getaddrinfo="yes" ])]) if test "$ac_cv_working_getaddrinfo" = "yes"; then AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if getaddrinfo exists and works]) AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support]) IPV6_ENABLED=1 AC_SUBST(IPV6_ENABLED) fi ]) AC_DEFUN(CURL_CHECK_LOCALTIME_R, [ dnl check for a few thread-safe functions AC_CHECK_FUNCS(localtime_r,[ AC_MSG_CHECKING(whether localtime_r is declared) AC_EGREP_CPP(localtime_r,[ #include <time.h>],[ AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(whether localtime_r with -D_REENTRANT is declared) AC_EGREP_CPP(localtime_r,[ #define _REENTRANT #include <time.h>],[ AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) ]) AC_DEFUN(CURL_CHECK_INET_NTOA_R, [ dnl determine if function definition for inet_ntoa_r exists. AC_CHECK_FUNCS(inet_ntoa_r,[ AC_MSG_CHECKING(whether inet_ntoa_r is declared) AC_EGREP_CPP(inet_ntoa_r,[ #include <arpa/inet.h>],[ AC_DEFINE(HAVE_INET_NTOA_R_DECL) AC_MSG_RESULT(yes)],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(whether inet_ntoa_r with -D_REENTRANT is declared) AC_EGREP_CPP(inet_ntoa_r,[ #define _REENTRANT #include <arpa/inet.h>],[ AC_DEFINE(HAVE_INET_NTOA_R_DECL) AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) ]) AC_DEFUN(CURL_CHECK_GETHOSTBYADDR_R, [ dnl check for number of arguments to gethostbyaddr_r. it might take dnl either 5, 7, or 8 arguments. AC_CHECK_FUNCS(gethostbyaddr_r,[ AC_MSG_CHECKING(if gethostbyaddr_r takes 5 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; struct hostent_data hdata; int rc; rc = gethostbyaddr_r(address, length, type, &h, &hdata);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_5) ac_cv_gethostbyaddr_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r with -D_REENTRANT takes 5 arguments) AC_TRY_COMPILE([ #define _REENTRANT #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; struct hostent_data hdata; int rc; rc = gethostbyaddr_r(address, length, type, &h, &hdata);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_5) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyaddr_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r takes 7 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; char buffer[8192]; int h_errnop; struct hostent * hp; hp = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &h_errnop);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_7) ac_cv_gethostbyaddr_args=7],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyaddr_r takes 8 arguments) AC_TRY_COMPILE([ #include <sys/types.h> #include <netdb.h>],[ char * address; int length; int type; struct hostent h; char buffer[8192]; int h_errnop; struct hostent * hp; int rc; rc = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &hp, &h_errnop);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYADDR_R_8) ac_cv_gethostbyaddr_args=8],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyaddr_r"])])])])]) ]) AC_DEFUN(CURL_CHECK_GETHOSTBYNAME_R, [ dnl check for number of arguments to gethostbyname_r. it might take dnl either 3, 5, or 6 arguments. AC_CHECK_FUNCS(gethostbyname_r,[ AC_MSG_CHECKING(if gethostbyname_r takes 3 arguments) AC_TRY_RUN([ #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent_data hdata; char *name = "localhost"; int rc; memset(&h, 0, sizeof(struct hostent)); memset(&hdata, 0, sizeof(struct hostent_data)); rc = gethostbyname_r(name, &h, &hdata); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r with -D_REENTRANT takes 3 arguments) AC_TRY_RUN([ #define _REENTRANT #include <string.h> #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent_data hdata; char *name = "localhost"; int rc; memset(&h, 0, sizeof(struct hostent)); memset(&hdata, 0, sizeof(struct hostent_data)); rc = gethostbyname_r(name, &h, &hdata); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r takes 5 arguments) AC_TRY_RUN([ #include <sys/types.h> #include <netdb.h> int main () { struct hostent *hp; struct hostent h; char *name = "localhost"; char buffer[8192]; int h_errno; hp = gethostbyname_r(name, &h, buffer, 8192, &h_errno); exit (hp == NULL ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_5) ac_cv_gethostbyname_args=5],[ AC_MSG_RESULT(no) AC_MSG_CHECKING(if gethostbyname_r takes 6 arguments) AC_TRY_RUN([ #include <sys/types.h> #include <netdb.h> int main () { struct hostent h; struct hostent *hp; char *name = "localhost"; char buf[8192]; int rc; int h_errno; rc = gethostbyname_r(name, &h, buf, 8192, &hp, &h_errno); exit (rc != 0 ? 1 : 0); }],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_6) ac_cv_gethostbyname_args=6],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyname_r"], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])], [ac_cv_gethostbyname_args=0])]) if test "$ac_cv_func_gethostbyname_r" = "yes"; then if test "$ac_cv_gethostbyname_args" = "0"; then dnl there's a gethostbyname_r() function, but we don't know how dnl many arguments it wants! AC_MSG_ERROR([couldn't figure out how to use gethostbyname_r()]) fi fi ]) dnl ********************************************************************** dnl Checks for IPv6 dnl ********************************************************************** Loading Loading @@ -782,26 +496,7 @@ AC_CHECK_SIZEOF(long long, 4) # check for ssize_t AC_CHECK_TYPE(ssize_t, int) dnl dnl We can't just AC_CHECK_TYPE() for socklen_t since it doesn't appear dnl in the standard headers. We egrep for it in the socket headers and dnl if it is used there we assume we have the type defined, otherwise dnl we search for it with AC_CHECK_TYPE() the "normal" way dnl if test "$ac_cv_header_sys_socket_h" = "yes"; then AC_MSG_CHECKING(for socklen_t in sys/socket.h) AC_EGREP_HEADER(socklen_t, sys/socket.h, socklen_t=yes AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) fi if test "$socklen_t" != "yes"; then # check for socklen_t the standard way if it wasn't found before AC_CHECK_TYPE(socklen_t, int) fi TYPE_SOCKLEN_T dnl Checks for library functions. dnl AC_PROG_GCC_TRADITIONAL Loading
lib/Makefile.am +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ # $Id$ # AUTOMAKE_OPTIONS = foreign AUTOMAKE_OPTIONS = foreign no-dependencies EXTRA_DIST = getdate.y \ Makefile.b32 Makefile.b32.resp Makefile.m32 Makefile.vc6 \ Loading