X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fhost.c;h=86bf83b3dfe04ccb6abcfeaa7ea5656248691ae0;hp=2efe93a9ef9b42448a01e24e43cbef2968589b32;hb=38a7829dcb4eb5dba28dbf0f05c6a80fea9217f8;hpb=2f6aa1d7417df1dfc58597777686fbd77179b9fd diff --git a/src/host.c b/src/host.c index 2efe93a9..86bf83b3 100644 --- a/src/host.c +++ b/src/host.c @@ -1,6 +1,6 @@ /* Host name resolution and matching. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, + 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -50,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 */ @@ -820,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)); @@ -908,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; +}