From: Andrew Tridgell Date: Wed, 19 Apr 2000 05:33:39 +0000 (+0000) Subject: autoconf test for broken solaris inet_aton() X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/fca3ef06cdb845573b8460a551ad5f90838ef9ca autoconf test for broken solaris inet_aton() --- diff --git a/acconfig.h b/acconfig.h index 03a77f8c..7028d74a 100644 --- a/acconfig.h +++ b/acconfig.h @@ -10,5 +10,6 @@ #undef HAVE_SHORT_INO_T #undef HAVE_GETOPT_LONG #undef REPLACE_INET_NTOA +#undef REPLACE_INET_ATON #undef HAVE_GETTIMEOFDAY_TZ #undef HAVE_SOCKETPAIR diff --git a/configure.in b/configure.in index 61bab4ce..d65fc8b9 100644 --- a/configure.in +++ b/configure.in @@ -97,7 +97,7 @@ AC_FUNC_UTIME_NULL AC_CHECK_FUNCS(waitpid wait4 getcwd strdup strerror chown chmod mknod) AC_CHECK_FUNCS(fchmod fstat strchr readlink link utime utimes strftime) AC_CHECK_FUNCS(memmove lchown vsnprintf snprintf setsid glob strpbrk) -AC_CHECK_FUNCS(strlcat strlcpy inet_aton) +AC_CHECK_FUNCS(strlcat strlcpy) AC_CACHE_CHECK([for working socketpair],rsync_cv_HAVE_SOCKETPAIR,[ AC_TRY_RUN([#include @@ -210,13 +210,27 @@ AC_TRY_RUN([ #include main() { struct in_addr ip; ip.s_addr = 0x12345678; if (strcmp(inet_ntoa(ip),"18.52.86.120") && - strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } -exit(1);}], - rsync_cv_REPLACE_INET_NTOA=yes,rsync_cv_REPLACE_INET_NTOA=no,rsync_cv_REPLACE_INET_NTOA=cross)]) + strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(1); } +exit(0);}], + rsync_cv_REPLACE_INET_NTOA=no,rsync_cv_REPLACE_INET_NTOA=yes,rsync_cv_REPLACE_INET_NTOA=cross)]) if test x"$rsync_cv_REPLACE_INET_NTOA" = x"yes"; then AC_DEFINE(REPLACE_INET_NTOA) fi + +AC_CACHE_CHECK([for broken inet_aton],rsync_cv_REPLACE_INET_ATON,[ +AC_TRY_RUN([ +#include +#include +#include +#include +main() { struct in_addr ip; +if (inet_aton("example", &ip) == 0) exit(0); exit(1);}], + rsync_cv_REPLACE_INET_ATON=no,rsync_cv_REPLACE_INET_ATON=yes,rsync_cv_REPLACE_INET_ATON=cross)]) +if test x"$rsync_cv_REPLACE_INET_ATON" = x"yes"; then + AC_DEFINE(REPLACE_INET_ATON) +fi + # # The following test was mostly taken from the tcl/tk plus patches # diff --git a/lib/compat.c b/lib/compat.c index a6d7d708..e2380e17 100644 --- a/lib/compat.c +++ b/lib/compat.c @@ -95,21 +95,6 @@ } #endif -#ifdef REPLACE_INET_NTOA - char *rep_inet_ntoa(struct in_addr ip) -{ - unsigned char *p = (unsigned char *)&ip.s_addr; - static char buf[18]; -#if WORDS_BIGENDIAN - slprintf(buf, 18, "%d.%d.%d.%d", - (int)p[0], (int)p[1], (int)p[2], (int)p[3]); -#else - slprintf(buf, 18, "%d.%d.%d.%d", - (int)p[3], (int)p[2], (int)p[1], (int)p[0]); -#endif - return buf; -} -#endif #ifndef HAVE_STRLCPY /* like strncpy but does not 0 fill the buffer and always null @@ -146,7 +131,23 @@ } #endif -#ifndef HAVE_INET_ATON +#ifdef REPLACE_INET_NTOA + char *rep_inet_ntoa(struct in_addr ip) +{ + unsigned char *p = (unsigned char *)&ip.s_addr; + static char buf[18]; +#if WORDS_BIGENDIAN + slprintf(buf, 18, "%d.%d.%d.%d", + (int)p[0], (int)p[1], (int)p[2], (int)p[3]); +#else + slprintf(buf, 18, "%d.%d.%d.%d", + (int)p[3], (int)p[2], (int)p[1], (int)p[0]); +#endif + return buf; +} +#endif + +#ifndef REPLACE_INET_ATON int inet_aton(const char *cp, struct in_addr *inp) { unsigned int a1, a2, a3, a4;