mirror of https://github.com/c-ares/c-ares.git
Added constants that will be used by ares_getaddrinfo. Made ares_getnameinfo use the reentrant getservbyport (getservbyport_r) if it isavailable to ensure it works properly in a threaded environment
parent
8df407ed7d
commit
6afd5c16d3
5 changed files with 731 additions and 627 deletions
@ -1,271 +1,318 @@ |
|||||||
dnl Check for how to set a socket to non-blocking state. There seems to exist |
dnl Check for how to set a socket to non-blocking state. There seems to exist |
||||||
dnl four known different ways, with the one used almost everywhere being POSIX |
dnl four known different ways, with the one used almost everywhere being POSIX |
||||||
dnl and XPG3, while the other different ways for different systems (old BSD, |
dnl and XPG3, while the other different ways for different systems (old BSD, |
||||||
dnl Windows and Amiga). |
dnl Windows and Amiga). |
||||||
dnl |
dnl |
||||||
dnl There are two known platforms (AIX 3.x and SunOS 4.1.x) where the |
dnl There are two known platforms (AIX 3.x and SunOS 4.1.x) where the |
||||||
dnl O_NONBLOCK define is found but does not work. This condition is attempted |
dnl O_NONBLOCK define is found but does not work. This condition is attempted |
||||||
dnl to get caught in this script by using an excessive number of #ifdefs... |
dnl to get caught in this script by using an excessive number of #ifdefs... |
||||||
dnl |
dnl |
||||||
AC_DEFUN([CURL_CHECK_NONBLOCKING_SOCKET], |
AC_DEFUN([CURL_CHECK_NONBLOCKING_SOCKET], |
||||||
[ |
[ |
||||||
AC_MSG_CHECKING([non-blocking sockets style]) |
AC_MSG_CHECKING([non-blocking sockets style]) |
||||||
|
|
||||||
AC_TRY_COMPILE([ |
AC_TRY_COMPILE([ |
||||||
/* headers for O_NONBLOCK test */ |
/* headers for O_NONBLOCK test */ |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#include <unistd.h> |
#include <unistd.h> |
||||||
#include <fcntl.h> |
#include <fcntl.h> |
||||||
],[ |
],[ |
||||||
/* try to compile O_NONBLOCK */ |
/* try to compile O_NONBLOCK */ |
||||||
|
|
||||||
#if defined(sun) || defined(__sun__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) |
#if defined(sun) || defined(__sun__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) |
||||||
# if defined(__SVR4) || defined(__srv4__) |
# if defined(__SVR4) || defined(__srv4__) |
||||||
# define PLATFORM_SOLARIS |
# define PLATFORM_SOLARIS |
||||||
# else |
# else |
||||||
# define PLATFORM_SUNOS4 |
# define PLATFORM_SUNOS4 |
||||||
# endif |
# endif |
||||||
#endif |
#endif |
||||||
#if (defined(_AIX) || defined(__xlC__)) && !defined(_AIX4) |
#if (defined(_AIX) || defined(__xlC__)) && !defined(_AIX4) |
||||||
# define PLATFORM_AIX_V3 |
# define PLATFORM_AIX_V3 |
||||||
#endif |
#endif |
||||||
|
|
||||||
#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__) |
#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__) |
||||||
#error "O_NONBLOCK does not work on this platform" |
#error "O_NONBLOCK does not work on this platform" |
||||||
#endif |
#endif |
||||||
int socket; |
int socket; |
||||||
int flags = fcntl(socket, F_SETFL, flags | O_NONBLOCK); |
int flags = fcntl(socket, F_SETFL, flags | O_NONBLOCK); |
||||||
],[ |
],[ |
||||||
dnl the O_NONBLOCK test was fine |
dnl the O_NONBLOCK test was fine |
||||||
nonblock="O_NONBLOCK" |
nonblock="O_NONBLOCK" |
||||||
AC_DEFINE(HAVE_O_NONBLOCK, 1, [use O_NONBLOCK for non-blocking sockets]) |
AC_DEFINE(HAVE_O_NONBLOCK, 1, [use O_NONBLOCK for non-blocking sockets]) |
||||||
],[ |
],[ |
||||||
dnl the code was bad, try a different program now, test 2 |
dnl the code was bad, try a different program now, test 2 |
||||||
|
|
||||||
AC_TRY_COMPILE([ |
AC_TRY_COMPILE([ |
||||||
/* headers for FIONBIO test */ |
/* headers for FIONBIO test */ |
||||||
#include <unistd.h> |
#include <unistd.h> |
||||||
#include <stropts.h> |
#include <stropts.h> |
||||||
],[ |
],[ |
||||||
/* FIONBIO source test (old-style unix) */ |
/* FIONBIO source test (old-style unix) */ |
||||||
int socket; |
int socket; |
||||||
int flags = ioctl(socket, FIONBIO, &flags); |
int flags = ioctl(socket, FIONBIO, &flags); |
||||||
],[ |
],[ |
||||||
dnl FIONBIO test was good |
dnl FIONBIO test was good |
||||||
nonblock="FIONBIO" |
nonblock="FIONBIO" |
||||||
AC_DEFINE(HAVE_FIONBIO, 1, [use FIONBIO for non-blocking sockets]) |
AC_DEFINE(HAVE_FIONBIO, 1, [use FIONBIO for non-blocking sockets]) |
||||||
],[ |
],[ |
||||||
dnl FIONBIO test was also bad |
dnl FIONBIO test was also bad |
||||||
dnl the code was bad, try a different program now, test 3 |
dnl the code was bad, try a different program now, test 3 |
||||||
|
|
||||||
AC_TRY_COMPILE([ |
AC_TRY_COMPILE([ |
||||||
/* headers for ioctlsocket test (cygwin?) */ |
/* headers for ioctlsocket test (cygwin?) */ |
||||||
#include <windows.h> |
#include <windows.h> |
||||||
],[ |
],[ |
||||||
/* ioctlsocket source code */ |
/* ioctlsocket source code */ |
||||||
int socket; |
int socket; |
||||||
unsigned long flags = ioctlsocket(socket, FIONBIO, &flags); |
unsigned long flags = ioctlsocket(socket, FIONBIO, &flags); |
||||||
],[ |
],[ |
||||||
dnl ioctlsocket test was good |
dnl ioctlsocket test was good |
||||||
nonblock="ioctlsocket" |
nonblock="ioctlsocket" |
||||||
AC_DEFINE(HAVE_IOCTLSOCKET, 1, [use ioctlsocket() for non-blocking sockets]) |
AC_DEFINE(HAVE_IOCTLSOCKET, 1, [use ioctlsocket() for non-blocking sockets]) |
||||||
],[ |
],[ |
||||||
dnl ioctlsocket didnt compile!, go to test 4 |
dnl ioctlsocket didnt compile!, go to test 4 |
||||||
|
|
||||||
AC_TRY_LINK([ |
AC_TRY_LINK([ |
||||||
/* headers for IoctlSocket test (Amiga?) */ |
/* headers for IoctlSocket test (Amiga?) */ |
||||||
#include <sys/ioctl.h> |
#include <sys/ioctl.h> |
||||||
],[ |
],[ |
||||||
/* IoctlSocket source code */ |
/* IoctlSocket source code */ |
||||||
int socket; |
int socket; |
||||||
int flags = IoctlSocket(socket, FIONBIO, (long)1); |
int flags = IoctlSocket(socket, FIONBIO, (long)1); |
||||||
],[ |
],[ |
||||||
dnl ioctlsocket test was good |
dnl ioctlsocket test was good |
||||||
nonblock="IoctlSocket" |
nonblock="IoctlSocket" |
||||||
AC_DEFINE(HAVE_IOCTLSOCKET_CASE, 1, [use Ioctlsocket() for non-blocking sockets]) |
AC_DEFINE(HAVE_IOCTLSOCKET_CASE, 1, [use Ioctlsocket() for non-blocking sockets]) |
||||||
],[ |
],[ |
||||||
dnl Ioctlsocket didnt compile, do test 5! |
dnl Ioctlsocket didnt compile, do test 5! |
||||||
AC_TRY_COMPILE([ |
AC_TRY_COMPILE([ |
||||||
/* headers for SO_NONBLOCK test (BeOS) */ |
/* headers for SO_NONBLOCK test (BeOS) */ |
||||||
#include <socket.h> |
#include <socket.h> |
||||||
],[ |
],[ |
||||||
/* SO_NONBLOCK source code */ |
/* SO_NONBLOCK source code */ |
||||||
long b = 1; |
long b = 1; |
||||||
int socket; |
int socket; |
||||||
int flags = setsockopt(socket, SOL_SOCKET, SO_NONBLOCK, &b, sizeof(b)); |
int flags = setsockopt(socket, SOL_SOCKET, SO_NONBLOCK, &b, sizeof(b)); |
||||||
],[ |
],[ |
||||||
dnl the SO_NONBLOCK test was good |
dnl the SO_NONBLOCK test was good |
||||||
nonblock="SO_NONBLOCK" |
nonblock="SO_NONBLOCK" |
||||||
AC_DEFINE(HAVE_SO_NONBLOCK, 1, [use SO_NONBLOCK for non-blocking sockets]) |
AC_DEFINE(HAVE_SO_NONBLOCK, 1, [use SO_NONBLOCK for non-blocking sockets]) |
||||||
],[ |
],[ |
||||||
dnl test 5 didnt compile! |
dnl test 5 didnt compile! |
||||||
nonblock="nada" |
nonblock="nada" |
||||||
AC_DEFINE(HAVE_DISABLED_NONBLOCKING, 1, [disabled non-blocking sockets]) |
AC_DEFINE(HAVE_DISABLED_NONBLOCKING, 1, [disabled non-blocking sockets]) |
||||||
]) |
]) |
||||||
dnl end of fifth test |
dnl end of fifth test |
||||||
|
|
||||||
]) |
]) |
||||||
dnl end of forth test |
dnl end of forth test |
||||||
|
|
||||||
]) |
]) |
||||||
dnl end of third test |
dnl end of third test |
||||||
|
|
||||||
]) |
]) |
||||||
dnl end of second test |
dnl end of second test |
||||||
|
|
||||||
]) |
]) |
||||||
dnl end of non-blocking try-compile test |
dnl end of non-blocking try-compile test |
||||||
AC_MSG_RESULT($nonblock) |
AC_MSG_RESULT($nonblock) |
||||||
|
|
||||||
if test "$nonblock" = "nada"; then |
if test "$nonblock" = "nada"; then |
||||||
AC_MSG_WARN([non-block sockets disabled]) |
AC_MSG_WARN([non-block sockets disabled]) |
||||||
fi |
fi |
||||||
]) |
]) |
||||||
|
|
||||||
dnl We create a function for detecting which compiler we use and then set as |
dnl We create a function for detecting which compiler we use and then set as |
||||||
dnl pendantic compiler options as possible for that particular compiler. The |
dnl pendantic compiler options as possible for that particular compiler. The |
||||||
dnl options are only used for debug-builds. |
dnl options are only used for debug-builds. |
||||||
|
|
||||||
dnl This is a copy of the original found in curl's configure script. Don't |
dnl This is a copy of the original found in curl's configure script. Don't |
||||||
dnl modify this one, edit the one in curl and copy it back here when that one |
dnl modify this one, edit the one in curl and copy it back here when that one |
||||||
dnl is changed. |
dnl is changed. |
||||||
|
|
||||||
AC_DEFUN([CURL_CC_DEBUG_OPTS], |
AC_DEFUN([CURL_CC_DEBUG_OPTS], |
||||||
[ |
[ |
||||||
if test "$GCC" = "yes"; then |
if test "$GCC" = "yes"; then |
||||||
|
|
||||||
dnl figure out gcc version! |
dnl figure out gcc version! |
||||||
AC_MSG_CHECKING([gcc version]) |
AC_MSG_CHECKING([gcc version]) |
||||||
gccver=`$CC -dumpversion` |
gccver=`$CC -dumpversion` |
||||||
num1=`echo $gccver | cut -d . -f1` |
num1=`echo $gccver | cut -d . -f1` |
||||||
num2=`echo $gccver | cut -d . -f2` |
num2=`echo $gccver | cut -d . -f2` |
||||||
gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null` |
gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null` |
||||||
AC_MSG_RESULT($gccver) |
AC_MSG_RESULT($gccver) |
||||||
|
|
||||||
AC_MSG_CHECKING([if this is icc in disguise]) |
AC_MSG_CHECKING([if this is icc in disguise]) |
||||||
AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER], |
AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER], |
||||||
dnl action if the text is found, this it has not been replaced by the |
dnl action if the text is found, this it has not been replaced by the |
||||||
dnl cpp |
dnl cpp |
||||||
ICC="no" |
ICC="no" |
||||||
AC_MSG_RESULT([no]), |
AC_MSG_RESULT([no]), |
||||||
dnl the text was not found, it was replaced by the cpp |
dnl the text was not found, it was replaced by the cpp |
||||||
ICC="yes" |
ICC="yes" |
||||||
AC_MSG_RESULT([yes]) |
AC_MSG_RESULT([yes]) |
||||||
) |
) |
||||||
|
|
||||||
if test "$ICC" = "yes"; then |
if test "$ICC" = "yes"; then |
||||||
dnl this is icc, not gcc. |
dnl this is icc, not gcc. |
||||||
|
|
||||||
dnl ICC warnings we ignore: |
dnl ICC warnings we ignore: |
||||||
dnl * 279 warns on static conditions in while expressions |
dnl * 279 warns on static conditions in while expressions |
||||||
dnl * 269 warns on our "%Od" printf formatters for curl_off_t output: |
dnl * 269 warns on our "%Od" printf formatters for curl_off_t output: |
||||||
dnl "invalid format string conversion" |
dnl "invalid format string conversion" |
||||||
|
|
||||||
WARN="-wd279,269" |
WARN="-wd279,269" |
||||||
|
|
||||||
if test "$gccnum" -gt "600"; then |
if test "$gccnum" -gt "600"; then |
||||||
dnl icc 6.0 and older doesn't have the -Wall flag |
dnl icc 6.0 and older doesn't have the -Wall flag |
||||||
WARN="-Wall $WARN" |
WARN="-Wall $WARN" |
||||||
fi |
fi |
||||||
else dnl $ICC = yes |
else dnl $ICC = yes |
||||||
dnl |
dnl |
||||||
WARN="-W -Wall -Wwrite-strings -pedantic -Wno-long-long -Wundef -Wpointer-arith -Wnested-externs -Winline -Wmissing-declarations -Wmissing-prototypes -Wsign-compare" |
WARN="-W -Wall -Wwrite-strings -pedantic -Wno-long-long -Wundef -Wpointer-arith -Wnested-externs -Winline -Wmissing-declarations -Wmissing-prototypes -Wsign-compare" |
||||||
|
|
||||||
dnl -Wcast-align is a bit too annoying ;-) |
dnl -Wcast-align is a bit too annoying ;-) |
||||||
|
|
||||||
if test "$gccnum" -ge "296"; then |
if test "$gccnum" -ge "296"; then |
||||||
dnl gcc 2.96 or later |
dnl gcc 2.96 or later |
||||||
WARN="$WARN -Wfloat-equal" |
WARN="$WARN -Wfloat-equal" |
||||||
|
|
||||||
if test "$gccnum" -gt "296"; then |
if test "$gccnum" -gt "296"; then |
||||||
dnl this option does not exist in 2.96 |
dnl this option does not exist in 2.96 |
||||||
WARN="$WARN -Wno-format-nonliteral" |
WARN="$WARN -Wno-format-nonliteral" |
||||||
fi |
fi |
||||||
|
|
||||||
dnl -Wunreachable-code seems totally unreliable on my gcc 3.3.2 on |
dnl -Wunreachable-code seems totally unreliable on my gcc 3.3.2 on |
||||||
dnl on i686-Linux as it gives us heaps with false positives |
dnl on i686-Linux as it gives us heaps with false positives |
||||||
if test "$gccnum" -ge "303"; then |
if test "$gccnum" -ge "303"; then |
||||||
dnl gcc 3.3 and later |
dnl gcc 3.3 and later |
||||||
WARN="$WARN -Wendif-labels -Wstrict-prototypes" |
WARN="$WARN -Wendif-labels -Wstrict-prototypes" |
||||||
fi |
fi |
||||||
fi |
fi |
||||||
|
|
||||||
for flag in $CPPFLAGS; do |
for flag in $CPPFLAGS; do |
||||||
case "$flag" in |
case "$flag" in |
||||||
-I*) |
-I*) |
||||||
dnl include path |
dnl include path |
||||||
add=`echo $flag | sed 's/^-I/-isystem /g'` |
add=`echo $flag | sed 's/^-I/-isystem /g'` |
||||||
WARN="$WARN $add" |
WARN="$WARN $add" |
||||||
;; |
;; |
||||||
esac |
esac |
||||||
done |
done |
||||||
|
|
||||||
fi dnl $ICC = no |
fi dnl $ICC = no |
||||||
|
|
||||||
CFLAGS="$CFLAGS $WARN" |
CFLAGS="$CFLAGS $WARN" |
||||||
|
|
||||||
fi dnl $GCC = yes |
fi dnl $GCC = yes |
||||||
|
|
||||||
dnl strip off optimizer flags |
dnl strip off optimizer flags |
||||||
NEWFLAGS="" |
NEWFLAGS="" |
||||||
for flag in $CFLAGS; do |
for flag in $CFLAGS; do |
||||||
case "$flag" in |
case "$flag" in |
||||||
-O*) |
-O*) |
||||||
dnl echo "cut off $flag" |
dnl echo "cut off $flag" |
||||||
;; |
;; |
||||||
*) |
*) |
||||||
NEWFLAGS="$NEWFLAGS $flag" |
NEWFLAGS="$NEWFLAGS $flag" |
||||||
;; |
;; |
||||||
esac |
esac |
||||||
done |
done |
||||||
CFLAGS=$NEWFLAGS |
CFLAGS=$NEWFLAGS |
||||||
|
|
||||||
]) dnl end of AC_DEFUN() |
]) dnl end of AC_DEFUN() |
||||||
|
|
||||||
|
|
||||||
dnl This macro determines if the specified struct exists in the specified file |
dnl This macro determines if the specified struct exists in the specified file |
||||||
dnl Syntax: |
dnl Syntax: |
||||||
dnl CARES_CHECK_STRUCT(headers, struct name, if found, [if not found]) |
dnl CARES_CHECK_STRUCT(headers, struct name, if found, [if not found]) |
||||||
|
|
||||||
AC_DEFUN([CARES_CHECK_STRUCT], [ |
AC_DEFUN([CARES_CHECK_STRUCT], [ |
||||||
AC_MSG_CHECKING([for struct $2]) |
AC_MSG_CHECKING([for struct $2]) |
||||||
AC_TRY_COMPILE([$1], |
AC_TRY_COMPILE([$1], |
||||||
[ |
[ |
||||||
struct $2 struct_instance; |
struct $2 struct_instance; |
||||||
], ac_struct="yes", ac_found="no") |
], ac_struct="yes", ac_found="no") |
||||||
if test "$ac_struct" = "yes" ; then |
if test "$ac_struct" = "yes" ; then |
||||||
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
||||||
$3 |
$3 |
||||||
else |
else |
||||||
AC_MSG_RESULT(no) |
AC_MSG_RESULT(no) |
||||||
$4 |
$4 |
||||||
fi |
fi |
||||||
]) |
]) |
||||||
|
|
||||||
dnl This macro determines if the specified constant exists in the specified file |
dnl This macro determines if the specified constant exists in the specified file |
||||||
dnl Syntax: |
dnl Syntax: |
||||||
dnl CARES_CHECK_CONSTANT(headers, constant name, if found, [if not found]) |
dnl CARES_CHECK_CONSTANT(headers, constant name, if found, [if not found]) |
||||||
|
|
||||||
AC_DEFUN([CARES_CHECK_CONSTANT], [ |
AC_DEFUN([CARES_CHECK_CONSTANT], [ |
||||||
AC_MSG_CHECKING([for $2]) |
AC_MSG_CHECKING([for $2]) |
||||||
AC_EGREP_CPP(VARIABLEWASDEFINED, |
AC_EGREP_CPP(VARIABLEWASDEFINED, |
||||||
[ |
[ |
||||||
$1 |
$1 |
||||||
|
|
||||||
#ifdef $2 |
#ifdef $2 |
||||||
VARIABLEWASDEFINED |
VARIABLEWASDEFINED |
||||||
#else |
#else |
||||||
NJET |
NJET |
||||||
#endif |
#endif |
||||||
], ac_constant="yes", ac_constant="no" |
], ac_constant="yes", ac_constant="no" |
||||||
) |
) |
||||||
if test "$ac_constant" = "yes" ; then |
if test "$ac_constant" = "yes" ; then |
||||||
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
||||||
$3 |
$3 |
||||||
else |
else |
||||||
AC_MSG_RESULT(no) |
AC_MSG_RESULT(no) |
||||||
$4 |
$4 |
||||||
fi |
fi |
||||||
]) |
]) |
||||||
|
|
||||||
|
|
||||||
|
dnl This macro determines how many parameters getservbyport_r takes |
||||||
|
AC_DEFUN([CARES_CHECK_GETSERVBYPORT_R], [ |
||||||
|
AC_MSG_CHECKING([how many arguments getservbyport_r takes]) |
||||||
|
AC_TRY_COMPILE( |
||||||
|
[#include <netdb.h>], |
||||||
|
[ |
||||||
|
int p1, p5; |
||||||
|
char *p2, p4[4096]; |
||||||
|
struct servent *p3, *p6; |
||||||
|
getservbyport_r(p1, p2, p3, p4, p5, &p6); |
||||||
|
], ac_func_getservbyport_r=6, |
||||||
|
[AC_TRY_COMPILE( |
||||||
|
[#include <netdb.h>], |
||||||
|
[ |
||||||
|
int p1, p5; |
||||||
|
char *p2, p4[4096]; |
||||||
|
struct servent *p3; |
||||||
|
getservbyport_r(p1, p2, p3, p4, p5); |
||||||
|
], ac_func_getservbyport_r=5, |
||||||
|
[AC_TRY_COMPILE( |
||||||
|
[#include <netdb.h>], |
||||||
|
[ |
||||||
|
int p1; |
||||||
|
char *p2; |
||||||
|
struct servent *p3; |
||||||
|
struct servent_data p4; |
||||||
|
getservbyport_r(p1, p2, p3, &p4); |
||||||
|
], ac_func_getservbyport_r=4, ac_func_getservbyport_r=0 |
||||||
|
)] |
||||||
|
)] |
||||||
|
) |
||||||
|
if test $ac_func_getservbyport_r != "0" ; then |
||||||
|
AC_MSG_RESULT($ac_func_getservbyport_r) |
||||||
|
AC_DEFINE(HAVE_GETSERVBYPORT_R, 1, [Specifies whether getservbyport_r is present]) |
||||||
|
AC_DEFINE_UNQUOTED(GETSERVBYPORT_R_ARGS, $ac_func_getservbyport_r, [Specifies the number of arguments to |
||||||
|
getservbyport_r]) |
||||||
|
if test $ac_func_getservbyport_r = "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 |
||||||
|
else |
||||||
|
AC_MSG_RESULT([not found]) |
||||||
|
fi |
||||||
|
]) |
||||||
|
|
||||||
|
@ -1,352 +1,355 @@ |
|||||||
dnl Process this file with autoconf to produce a configure script. |
dnl Process this file with autoconf to produce a configure script. |
||||||
AC_INIT(ares_init.c) |
AC_INIT(ares_init.c) |
||||||
AM_CONFIG_HEADER(config.h) |
AM_CONFIG_HEADER(config.h) |
||||||
AM_MAINTAINER_MODE |
AM_MAINTAINER_MODE |
||||||
AM_INIT_AUTOMAKE(c-ares, CVS) |
AM_INIT_AUTOMAKE(c-ares, CVS) |
||||||
|
|
||||||
AC_PROG_CC |
AC_PROG_CC |
||||||
AC_PROG_INSTALL |
AC_PROG_INSTALL |
||||||
|
|
||||||
case $host_os in |
case $host_os in |
||||||
solaris*) |
solaris*) |
||||||
AC_DEFINE(ETC_INET, 1, [if a /etc/inet dir is being used]) |
AC_DEFINE(ETC_INET, 1, [if a /etc/inet dir is being used]) |
||||||
;; |
;; |
||||||
esac |
esac |
||||||
|
|
||||||
# check for ssize_t |
# check for ssize_t |
||||||
AC_CHECK_TYPE(ssize_t, , |
AC_CHECK_TYPE(ssize_t, , |
||||||
AC_DEFINE(ssize_t, int, [the signed version of size_t])) |
AC_DEFINE(ssize_t, int, [the signed version of size_t])) |
||||||
|
|
||||||
AC_SEARCH_LIBS(gethostbyname, nsl) |
AC_SEARCH_LIBS(gethostbyname, nsl) |
||||||
AC_SEARCH_LIBS(socket, socket) |
AC_SEARCH_LIBS(socket, socket) |
||||||
|
|
||||||
dnl ************************************************************ |
dnl ************************************************************ |
||||||
dnl Option to switch on debug options. This makes an assumption that |
dnl Option to switch on debug options. This makes an assumption that |
||||||
dnl this is built as an 'ares' subdir in the curl source tree. Subject for |
dnl this is built as an 'ares' subdir in the curl source tree. Subject for |
||||||
dnl improval in the future! |
dnl improval in the future! |
||||||
dnl |
dnl |
||||||
AC_MSG_CHECKING([whether to enable debug options]) |
AC_MSG_CHECKING([whether to enable debug options]) |
||||||
AC_ARG_ENABLE(debug, |
AC_ARG_ENABLE(debug, |
||||||
AC_HELP_STRING([--enable-debug],[Enable pedantic debug options]) |
AC_HELP_STRING([--enable-debug],[Enable pedantic debug options]) |
||||||
AC_HELP_STRING([--disable-debug],[Disable debug options]), |
AC_HELP_STRING([--disable-debug],[Disable debug options]), |
||||||
[ case "$enableval" in |
[ case "$enableval" in |
||||||
no) |
no) |
||||||
AC_MSG_RESULT(no) |
AC_MSG_RESULT(no) |
||||||
;; |
;; |
||||||
*) AC_MSG_RESULT(yes) |
*) AC_MSG_RESULT(yes) |
||||||
|
|
||||||
dnl when doing the debug stuff, use static library only |
dnl when doing the debug stuff, use static library only |
||||||
AC_DISABLE_SHARED |
AC_DISABLE_SHARED |
||||||
|
|
||||||
dnl Checks for standard header files, to make memdebug.h inclusions bettter |
dnl Checks for standard header files, to make memdebug.h inclusions bettter |
||||||
AC_HEADER_STDC |
AC_HEADER_STDC |
||||||
|
|
||||||
dnl the entire --enable-debug is a hack that lives and runs on top of |
dnl the entire --enable-debug is a hack that lives and runs on top of |
||||||
dnl libcurl stuff so this BUILDING_LIBCURL is not THAT much uglier |
dnl libcurl stuff so this BUILDING_LIBCURL is not THAT much uglier |
||||||
AC_DEFINE(BUILDING_LIBCURL, 1, [when building as static part of libcurl]) |
AC_DEFINE(BUILDING_LIBCURL, 1, [when building as static part of libcurl]) |
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS -DCURLDEBUG -I$srcdir/../include" |
CPPFLAGS="$CPPFLAGS -DCURLDEBUG -I$srcdir/../include" |
||||||
CFLAGS="$CFLAGS -g" |
CFLAGS="$CFLAGS -g" |
||||||
|
|
||||||
dnl set compiler "debug" options to become more picky, and remove |
dnl set compiler "debug" options to become more picky, and remove |
||||||
dnl optimize options from CFLAGS |
dnl optimize options from CFLAGS |
||||||
CURL_CC_DEBUG_OPTS |
CURL_CC_DEBUG_OPTS |
||||||
|
|
||||||
;; |
;; |
||||||
esac ], |
esac ], |
||||||
AC_MSG_RESULT(no) |
AC_MSG_RESULT(no) |
||||||
) |
) |
||||||
|
|
||||||
AC_PROG_LIBTOOL |
AC_PROG_LIBTOOL |
||||||
|
|
||||||
dnl check for a few basic system headers we need |
dnl check for a few basic system headers we need |
||||||
AC_CHECK_HEADERS( |
AC_CHECK_HEADERS( |
||||||
sys/types.h \ |
sys/types.h \ |
||||||
sys/time.h \ |
sys/time.h \ |
||||||
sys/select.h \ |
sys/select.h \ |
||||||
sys/socket.h \ |
sys/socket.h \ |
||||||
sys/ioctl.h \ |
sys/ioctl.h \ |
||||||
winsock.h \ |
winsock.h \ |
||||||
netinet/in.h \ |
netinet/in.h \ |
||||||
net/if.h \ |
net/if.h \ |
||||||
arpa/nameser.h \ |
arpa/nameser.h \ |
||||||
arpa/nameser_compat.h \ |
arpa/nameser_compat.h \ |
||||||
arpa/inet.h, , , |
arpa/inet.h, , , |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
dnl We do this default-include simply to make sure that the nameser_compat.h |
dnl We do this default-include simply to make sure that the nameser_compat.h |
||||||
dnl header *REALLY* can be include after the new nameser.h. It seems AIX 5.1 |
dnl header *REALLY* can be include after the new nameser.h. It seems AIX 5.1 |
||||||
dnl (and others?) is not designed to allow this. |
dnl (and others?) is not designed to allow this. |
||||||
#ifdef HAVE_ARPA_NAMESER_H |
#ifdef HAVE_ARPA_NAMESER_H |
||||||
#include <arpa/nameser.h> |
#include <arpa/nameser.h> |
||||||
#endif |
#endif |
||||||
|
|
||||||
dnl *Sigh* these are needed in order for net/if.h to get properly detected. |
dnl *Sigh* these are needed in order for net/if.h to get properly detected. |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
] |
] |
||||||
) |
) |
||||||
|
|
||||||
AC_CHECK_TYPE(socklen_t, , |
AC_CHECK_TYPE(socklen_t, , |
||||||
AC_DEFINE(socklen_t, int, [the length of a socket address]), |
AC_DEFINE(socklen_t, int, [the length of a socket address]), |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
]) |
]) |
||||||
|
|
||||||
dnl check for AF_INET6 |
dnl check for AF_INET6 |
||||||
CARES_CHECK_CONSTANT( |
CARES_CHECK_CONSTANT( |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
|
|
||||||
], [PF_INET6], |
], [PF_INET6], |
||||||
AC_DEFINE_UNQUOTED(HAVE_PF_INET6,1,[Define to 1 if you have PF_INET6.]) |
AC_DEFINE_UNQUOTED(HAVE_PF_INET6,1,[Define to 1 if you have PF_INET6.]) |
||||||
) |
) |
||||||
|
|
||||||
dnl check for PF_INET6 |
dnl check for PF_INET6 |
||||||
CARES_CHECK_CONSTANT( |
CARES_CHECK_CONSTANT( |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
|
|
||||||
], [AF_INET6], |
], [AF_INET6], |
||||||
AC_DEFINE_UNQUOTED(HAVE_AF_INET6,1,[Define to 1 if you have AF_INET6.]) |
AC_DEFINE_UNQUOTED(HAVE_AF_INET6,1,[Define to 1 if you have AF_INET6.]) |
||||||
) |
) |
||||||
|
|
||||||
|
|
||||||
dnl check for the in6_addr structure |
dnl check for the in6_addr structure |
||||||
CARES_CHECK_STRUCT( |
CARES_CHECK_STRUCT( |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
], [in6_addr], |
], [in6_addr], |
||||||
AC_DEFINE_UNQUOTED(HAVE_STRUCT_IN6_ADDR,1,[Define to 1 if you have struct in6_addr.]) |
AC_DEFINE_UNQUOTED(HAVE_STRUCT_IN6_ADDR,1,[Define to 1 if you have struct in6_addr.]) |
||||||
) |
) |
||||||
|
|
||||||
dnl check for the sockaddr_in6 structure |
dnl check for the sockaddr_in6 structure |
||||||
CARES_CHECK_STRUCT( |
CARES_CHECK_STRUCT( |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
], [sockaddr_in6], |
], [sockaddr_in6], |
||||||
AC_DEFINE_UNQUOTED(HAVE_STRUCT_SOCKADDR_IN6,1, |
AC_DEFINE_UNQUOTED(HAVE_STRUCT_SOCKADDR_IN6,1, |
||||||
[Define to 1 if you have struct sockaddr_in6.]) ac_have_sockaddr_in6=yes |
[Define to 1 if you have struct sockaddr_in6.]) ac_have_sockaddr_in6=yes |
||||||
) |
) |
||||||
|
|
||||||
if test "$ac_have_sockaddr_in6" = "yes" ; then |
if test "$ac_have_sockaddr_in6" = "yes" ; then |
||||||
AC_CHECK_MEMBER(struct sockaddr_in6.sin6_scope_id, |
AC_CHECK_MEMBER(struct sockaddr_in6.sin6_scope_id, |
||||||
AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID,1, |
AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID,1, |
||||||
[Define to 1 if your struct sockaddr_in6 has sin6_scope_id.]) |
[Define to 1 if your struct sockaddr_in6 has sin6_scope_id.]) |
||||||
, , |
, , |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
], [sockaddr_in6], [sin6_scope_id], |
], [sockaddr_in6], [sin6_scope_id], |
||||||
) |
) |
||||||
fi |
fi |
||||||
|
|
||||||
dnl check for the addrinfo structure |
dnl check for the addrinfo structure |
||||||
CARES_CHECK_STRUCT( |
CARES_CHECK_STRUCT( |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
], [addrinfo], |
], [addrinfo], |
||||||
AC_DEFINE_UNQUOTED(HAVE_STRUCT_ADDRINFO,1, |
AC_DEFINE_UNQUOTED(HAVE_STRUCT_ADDRINFO,1, |
||||||
[Define to 1 if you have struct addrinfo.]) |
[Define to 1 if you have struct addrinfo.]) |
||||||
) |
) |
||||||
|
|
||||||
dnl check for inet_pton |
dnl check for inet_pton |
||||||
AC_CHECK_FUNCS(inet_pton) |
AC_CHECK_FUNCS(inet_pton) |
||||||
dnl Some systems have it, but not IPv6 |
dnl Some systems have it, but not IPv6 |
||||||
if test "$ac_cv_func_inet_pton" = "yes" ; then |
if test "$ac_cv_func_inet_pton" = "yes" ; then |
||||||
AC_MSG_CHECKING(if inet_pton supports IPv6) |
AC_MSG_CHECKING(if inet_pton supports IPv6) |
||||||
AC_TRY_RUN( |
AC_TRY_RUN( |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
int main() |
int main() |
||||||
{ |
{ |
||||||
struct in6_addr addr6; |
struct in6_addr addr6; |
||||||
if (inet_pton(AF_INET6, "::1", &addr6) < 1) |
if (inet_pton(AF_INET6, "::1", &addr6) < 1) |
||||||
exit(1); |
exit(1); |
||||||
else |
else |
||||||
exit(0); |
exit(0); |
||||||
} |
} |
||||||
], [ |
], [ |
||||||
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
||||||
AC_DEFINE_UNQUOTED(HAVE_INET_PTON_IPV6,1,[Define to 1 if inet_pton supports IPv6.]) |
AC_DEFINE_UNQUOTED(HAVE_INET_PTON_IPV6,1,[Define to 1 if inet_pton supports IPv6.]) |
||||||
], AC_MSG_RESULT(no),AC_MSG_RESULT(no)) |
], AC_MSG_RESULT(no),AC_MSG_RESULT(no)) |
||||||
fi |
fi |
||||||
dnl Check for inet_net_pton |
dnl Check for inet_net_pton |
||||||
AC_CHECK_FUNCS(inet_net_pton) |
AC_CHECK_FUNCS(inet_net_pton) |
||||||
dnl Again, some systems have it, but not IPv6 |
dnl Again, some systems have it, but not IPv6 |
||||||
if test "$ac_cv_func_inet_net_pton" = "yes" ; then |
if test "$ac_cv_func_inet_net_pton" = "yes" ; then |
||||||
AC_MSG_CHECKING(if inet_net_pton supports IPv6) |
AC_MSG_CHECKING(if inet_net_pton supports IPv6) |
||||||
AC_TRY_RUN( |
AC_TRY_RUN( |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
int main() |
int main() |
||||||
{ |
{ |
||||||
struct in6_addr addr6; |
struct in6_addr addr6; |
||||||
if (inet_net_pton(AF_INET6, "::1", &addr6, sizeof(addr6)) < 1) |
if (inet_net_pton(AF_INET6, "::1", &addr6, sizeof(addr6)) < 1) |
||||||
exit(1); |
exit(1); |
||||||
else |
else |
||||||
exit(0); |
exit(0); |
||||||
} |
} |
||||||
], [ |
], [ |
||||||
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
||||||
AC_DEFINE_UNQUOTED(HAVE_INET_NET_PTON_IPV6,1,[Define to 1 if inet_net_pton supports IPv6.]) |
AC_DEFINE_UNQUOTED(HAVE_INET_NET_PTON_IPV6,1,[Define to 1 if inet_net_pton supports IPv6.]) |
||||||
], AC_MSG_RESULT(no),AC_MSG_RESULT(no)) |
], AC_MSG_RESULT(no),AC_MSG_RESULT(no)) |
||||||
fi |
fi |
||||||
|
|
||||||
|
|
||||||
dnl Check for inet_ntop |
dnl Check for inet_ntop |
||||||
AC_CHECK_FUNCS(inet_ntop) |
AC_CHECK_FUNCS(inet_ntop) |
||||||
dnl Again, some systems have it, but not IPv6 |
dnl Again, some systems have it, but not IPv6 |
||||||
if test "$ac_cv_func_inet_ntop" = "yes" ; then |
if test "$ac_cv_func_inet_ntop" = "yes" ; then |
||||||
AC_MSG_CHECKING(if inet_ntop supports IPv6) |
AC_MSG_CHECKING(if inet_ntop supports IPv6) |
||||||
AC_TRY_RUN( |
AC_TRY_RUN( |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
#include <errno.h> |
#include <errno.h> |
||||||
int main() |
int main() |
||||||
{ |
{ |
||||||
struct in6_addr addr6; |
struct in6_addr addr6; |
||||||
char buf[128]; |
char buf[128]; |
||||||
if (inet_ntop(AF_INET6, &addr6, buf, 128) == 0 && errno == EAFNOSUPPORT) |
if (inet_ntop(AF_INET6, &addr6, buf, 128) == 0 && errno == EAFNOSUPPORT) |
||||||
exit(1); |
exit(1); |
||||||
else |
else |
||||||
exit(0); |
exit(0); |
||||||
} |
} |
||||||
], [ |
], [ |
||||||
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
||||||
AC_DEFINE_UNQUOTED(HAVE_INET_NTOP_IPV6,1,[Define to 1 if inet_ntop supports IPv6.]) |
AC_DEFINE_UNQUOTED(HAVE_INET_NTOP_IPV6,1,[Define to 1 if inet_ntop supports IPv6.]) |
||||||
], AC_MSG_RESULT(no),AC_MSG_RESULT(no)) |
], AC_MSG_RESULT(no),AC_MSG_RESULT(no)) |
||||||
fi |
fi |
||||||
|
|
||||||
AC_CHECK_SIZEOF(struct in6_addr, , |
AC_CHECK_SIZEOF(struct in6_addr, , |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
] |
] |
||||||
) |
) |
||||||
AC_CHECK_SIZEOF(struct in_addr, , |
AC_CHECK_SIZEOF(struct in_addr, , |
||||||
[ |
[ |
||||||
#ifdef HAVE_SYS_TYPES_H |
#ifdef HAVE_SYS_TYPES_H |
||||||
#include <sys/types.h> |
#include <sys/types.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_SYS_SOCKET_H |
#ifdef HAVE_SYS_SOCKET_H |
||||||
#include <sys/socket.h> |
#include <sys/socket.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_WINSOCK_H |
#ifdef HAVE_WINSOCK_H |
||||||
#include <winsock.h> |
#include <winsock.h> |
||||||
#endif |
#endif |
||||||
#ifdef HAVE_NETINET_IN_H |
#ifdef HAVE_NETINET_IN_H |
||||||
#include <netinet/in.h> |
#include <netinet/in.h> |
||||||
#endif |
#endif |
||||||
] |
] |
||||||
) |
) |
||||||
|
|
||||||
AC_CHECK_FUNCS([bitncmp if_indextoname]) |
AC_CHECK_FUNCS([bitncmp if_indextoname]) |
||||||
|
|
||||||
CURL_CHECK_NONBLOCKING_SOCKET |
dnl God bless non-standardized functions! We need to see which getservbyport_r variant is available |
||||||
|
CARES_CHECK_GETSERVBYPORT_R |
||||||
AC_OUTPUT(Makefile) |
|
||||||
|
CURL_CHECK_NONBLOCKING_SOCKET |
||||||
|
|
||||||
|
AC_OUTPUT(Makefile) |
||||||
|
Loading…
Reference in new issue