X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fhost.c;h=d3b8da84b25cf7039afb29301f38aeab6aeb7442;hp=fee5e40499f5a4ad13fbc66a1530d641c63fd4c6;hb=d5e283b1a75c5f8249300b465b4e7b55130bec49;hpb=53d0aff795316dc1a4b785632f0d4d93c861e9cb diff --git a/src/host.c b/src/host.c index fee5e404..d3b8da84 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 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -17,17 +17,18 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Wget. If not, see . -In addition, as a special exception, the Free Software Foundation -gives permission to link the code of its release of Wget with the -OpenSSL project's "OpenSSL" library (or with modified versions of it -that use the same license as the "OpenSSL" library), and distribute -the linked executables. You must obey the GNU General Public License -in all respects for all of the code used other than "OpenSSL". If you -modify this file, you may extend this exception to your version of the -file, but you are not obligated to do so. If you do not wish to do -so, delete this exception statement from your version. */ +Additional permission under GNU GPL version 3 section 7 -#include +If you modify this program, or any covered work, by linking or +combining it with the OpenSSL project's OpenSSL library (or a +modified version of that library), containing parts covered by the +terms of the OpenSSL or SSLeay licenses, the Free Software Foundation +grants you additional permission to convey the resulting work. +Corresponding Source for a non-source form of such a combination +shall include the source code for the parts of OpenSSL used as well +as that of the covered work. */ + +#include "wget.h" #include #include @@ -35,12 +36,17 @@ so, delete this exception statement from your version. */ #include #ifndef WINDOWS +# include # include # include # ifndef __BEOS__ # include # endif -# include +# ifdef __VMS +# include "vms_ip.h" +# else /* def __VMS */ +# include +# endif /* def __VMS [else] */ # define SET_H_ERRNO(err) ((void)(h_errno = (err))) #else /* WINDOWS */ # define SET_H_ERRNO(err) WSASetLastError (err) @@ -48,7 +54,6 @@ so, delete this exception statement from your version. */ #include -#include "wget.h" #include "utils.h" #include "host.h" #include "url.h" @@ -58,6 +63,11 @@ so, delete this exception statement from your version. */ # define NO_ADDRESS NO_DATA #endif +#if !HAVE_DECL_H_ERRNO +extern int h_errno; +#endif + + /* Lists of IP addresses that result from running DNS queries. See lookup_host for details. */ @@ -495,7 +505,7 @@ is_valid_ipv6_address (const char *str, const char *end) int ch = *str++; /* if ch is a number, add it to val. */ - if (ISXDIGIT (ch)) + if (c_isxdigit (ch)) { val <<= 4; val |= XDIGIT_TO_NUM (ch); @@ -712,7 +722,24 @@ lookup_host (const char *host, int flags) /* No luck with the cache; resolve HOST. */ if (!silent && !numeric_address) - logprintf (LOG_VERBOSE, _("Resolving %s... "), escnonprint (host)); + { + char *str = NULL, *name; + + if (opt.enable_iri && (name = idn_decode ((char *) host)) != NULL) + { + int len = strlen (host) + strlen (name) + 4; + str = xmalloc (len); + snprintf (str, len, "%s (%s)", name, host); + str[len-1] = '\0'; + xfree (name); + } + + logprintf (LOG_VERBOSE, _("Resolving %s... "), + quotearg_style (escape_quoting_style, str ? str : host)); + + if (str) + xfree (str); + } #ifdef ENABLE_IPV6 { @@ -848,7 +875,7 @@ sufmatch (const char **list, const char *what) for (i = 0; list[i]; i++) { for (j = strlen (list[i]), k = lw; j >= 0 && k >= 0; j--, k--) - if (TOLOWER (list[i][j]) != TOLOWER (what[k])) + if (c_tolower (list[i][j]) != c_tolower (what[k])) break; /* The domain must be first to reach to beginning. */ if (j == -1)