X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fhost.c;h=86bf83b3dfe04ccb6abcfeaa7ea5656248691ae0;hb=85b98d08341ccd2abd2b0335465927e85eb20757;hp=df8bdda02385a91012f1a138496768fb297a4497;hpb=b2b76dcef401eecb5220b070f8256434aea17fc5;p=wget diff --git a/src/host.c b/src/host.c index df8bdda0..86bf83b3 100644 --- a/src/host.c +++ b/src/host.c @@ -1,6 +1,7 @@ /* Host name resolution and matching. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, + Inc. This file is part of GNU Wget. @@ -49,6 +50,8 @@ as that of the covered work. */ # endif /* def __VMS [else] */ # define SET_H_ERRNO(err) ((void)(h_errno = (err))) #else /* WINDOWS */ +# include +# include # define SET_H_ERRNO(err) WSASetLastError (err) #endif /* WINDOWS */ @@ -819,11 +822,15 @@ lookup_host (const char *host, int flags) #endif /* not ENABLE_IPV6 */ /* Print the addresses determined by DNS lookup, but no more than - three. */ + three if show_all_dns_entries is not specified. */ if (!silent && !numeric_address) { int i; - int printmax = al->count <= 3 ? al->count : 3; + int printmax = al->count; + + if (!opt.show_all_dns_entries && printmax > 3) + printmax = 3; + for (i = 0; i < printmax; i++) { logputs (LOG_VERBOSE, print_address (al->addresses + i)); @@ -907,3 +914,18 @@ host_cleanup (void) host_name_addresses_map = NULL; } } + +bool +is_valid_ip_address (const char *name) +{ + const char *endp; + + endp = name + strlen(name); + if (is_valid_ipv4_address (name, endp)) + return true; +#ifdef ENABLE_IPV6 + if (is_valid_ipv6_address (name, endp)) + return true; +#endif + return false; +}