diff --git a/configure.in b/configure.in index 63d3976aa3c..cf75aaa38f3 100644 --- a/configure.in +++ b/configure.in @@ -838,6 +838,8 @@ AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open)) AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind)) # Check if crypt() exists in libc or libcrypt, sets LIBS if needed AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt])) +# See if we need a library for address lookup. +AC_SEARCH_LIBS(inet_aton, [socket nsl resolv]) # For the sched_yield() function on Solaris AC_CHECK_FUNC(sched_yield, , AC_CHECK_LIB(posix4, sched_yield)) diff --git a/extra/resolveip.c b/extra/resolveip.c index 1061cafe380..c613f6a8cb6 100644 --- a/extra/resolveip.c +++ b/extra/resolveip.c @@ -116,11 +116,13 @@ int main(int argc, char **argv) while (argc--) { + struct in_addr addr; ip = *argv++; - if (my_isdigit(&my_charset_latin1,ip[0])) + /* Not compatible with IPv6! Probably should use getnameinfo(). */ + if (inet_aton(ip, &addr) != 0) { - taddr = inet_addr(ip); + taddr= addr.s_addr; if (taddr == htonl(INADDR_BROADCAST)) { puts("Broadcast");