From: ian Date: Sat, 8 May 1999 15:40:54 +0000 (+0000) Subject: Portability fixes (missing struct in_addr, INADDR_LOOPBACK defs, rrs=0 X-Git-Tag: rel-adns-0-2~14 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=commitdiff_plain;h=eec1d9c837c2b0f0c64d74a3dbf25732c7c475f2 Portability fixes (missing struct in_addr, INADDR_LOOPBACK defs, rrs=0 ipv rrs.untyped=0, -lsocket, etc. --- diff --git a/configure b/configure index 5cc73d5..720ebb6 100755 --- a/configure +++ b/configure @@ -718,23 +718,70 @@ else echo "$ac_t""no" 1>&6 fi +echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 +echo "configure:723: checking for socket in -lsocket" >&5 +ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + echo $ac_n "checking __attribute__((,,))""... $ac_c" 1>&6 -echo "configure:725: checking __attribute__((,,))" >&5 +echo "configure:772: checking __attribute__((,,))" >&5 if eval "test \"`echo '$''{'adns_cv_c_attribute_supported'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* adns_cv_c_attribute_supported=yes else @@ -756,20 +803,20 @@ EOF echo $ac_n "checking __attribute__((noreturn))""... $ac_c" 1>&6 -echo "configure:760: checking __attribute__((noreturn))" >&5 +echo "configure:807: checking __attribute__((noreturn))" >&5 if eval "test \"`echo '$''{'adns_cv_c_attribute_noreturn'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:820: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* adns_cv_c_attribute_noreturn=yes else @@ -796,20 +843,20 @@ EOF echo $ac_n "checking __attribute__((const))""... $ac_c" 1>&6 -echo "configure:800: checking __attribute__((const))" >&5 +echo "configure:847: checking __attribute__((const))" >&5 if eval "test \"`echo '$''{'adns_cv_c_attribute_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* adns_cv_c_attribute_const=yes else @@ -836,20 +883,20 @@ EOF echo $ac_n "checking __attribute__((format...))""... $ac_c" 1>&6 -echo "configure:840: checking __attribute__((format...))" >&5 +echo "configure:887: checking __attribute__((format...))" >&5 if eval "test \"`echo '$''{'adns_cv_attribute_format'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* adns_cv_attribute_format=yes else diff --git a/configure.in b/configure.in index 8d40cc1..7a7a59d 100644 --- a/configure.in +++ b/configure.in @@ -20,6 +20,7 @@ AC_INIT(src/adns.h) AC_CONFIG_HEADER(src/config.h) AC_PROG_CC AC_PROG_RANLIB +AC_CHECK_LIB(socket,socket) ADNS_C_GCCATTRIB AC_SUBST(WARNS) diff --git a/src/event.c b/src/event.c index db3dad6..582e95c 100644 --- a/src/event.c +++ b/src/event.c @@ -27,6 +27,8 @@ #include #include +#include +#include #include #include "internal.h" @@ -100,7 +102,7 @@ void adns__tcp_tryconnect(adns_state ads, struct timeval now) { addr.sin_family= AF_INET; addr.sin_port= htons(DNS_PORT); addr.sin_addr= ads->servers[ads->tcpserver].addr; - r= connect(fd,&addr,sizeof(addr)); + r= connect(fd,(const struct sockaddr*)&addr,sizeof(addr)); ads->tcpsocket= fd; ads->tcpstate= server_connecting; if (r==0) { tcp_connected(ads,now); continue; } @@ -305,7 +307,8 @@ static int internal_callback(adns_state ads, int maxfd, count++; for (;;) { udpaddrlen= sizeof(udpaddr); - r= recvfrom(ads->udpsocket,udpbuf,sizeof(udpbuf),0,&udpaddr,&udpaddrlen); + r= recvfrom(ads->udpsocket,udpbuf,sizeof(udpbuf),0, + (struct sockaddr*)&udpaddr,&udpaddrlen); if (r<0) { if (!(errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR || errno == ENOMEM || errno == ENOBUFS)) diff --git a/src/general.c b/src/general.c index b701b9f..6d4a1b8 100644 --- a/src/general.c +++ b/src/general.c @@ -24,6 +24,8 @@ #include #include +#include +#include #include #include "internal.h"