Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jan 2016 01:20:58 +0000 (UTC)
From:      Tony Finch <fanf@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r294613 - head/usr.bin/whois
Message-ID:  <201601230120.u0N1KwjP097438@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: fanf
Date: Sat Jan 23 01:20:58 2016
New Revision: 294613
URL: https://svnweb.freebsd.org/changeset/base/294613

Log:
  Fix a regression in the .de and .dk whois special cases
  
  Ensure the special cases trigger whether we come via a referral
  or via the -c option. Match host names case-insensitively.
  
  Use the default character set supported by .de (UTF-8) since that
  is more compatible with the modern world than ISO 8859-1. Persuade
  them to give us a useful answer whether an internationalized
  domain name is given in UTF-8 or in punycode.

Modified:
  head/usr.bin/whois/whois.c

Modified: head/usr.bin/whois/whois.c
==============================================================================
--- head/usr.bin/whois/whois.c	Sat Jan 23 01:02:28 2016	(r294612)
+++ head/usr.bin/whois/whois.c	Sat Jan 23 01:20:58 2016	(r294613)
@@ -61,7 +61,8 @@ __FBSDID("$FreeBSD$");
 
 #define	ABUSEHOST	"whois.abuse.net"
 #define	ANICHOST	"whois.arin.net"
-#define	DENICHOST	"de" QNICHOST_TAIL
+#define	DENICHOST	"whois.denic.de"
+#define	DKNICHOST	"whois.dk-hostmaster.dk"
 #define	FNICHOST	"whois.afrinic.net"
 #define	GNICHOST	"whois.nic.gov"
 #define	IANAHOST	"whois.iana.org"
@@ -415,17 +416,24 @@ done:
 		err(EX_OSERR, "fdopen()");
 
 	if (!(flags & WHOIS_SPAM_ME) &&
-	    strcmp(hostname, DENICHOST) == 0)
-		fprintf(fp, "-T dn,ace -C ISO-8859-1 %s\r\n", query);
-	else if (!(flags & WHOIS_SPAM_ME) &&
-		 strcmp(hostname, "dk" QNICHOST_TAIL) == 0)
+	    (strcasecmp(hostname, DENICHOST) == 0 ||
+	     strcasecmp(hostname, "de" QNICHOST_TAIL) == 0)) {
+		const char *q;
+		int idn = 0;
+		for (q = query; *q != '\0'; q++)
+			if (!isascii(*q))
+				idn = 1;
+		fprintf(fp, "-T dn%s %s\r\n", idn ? "" : ",ace", query);
+	} else if (!(flags & WHOIS_SPAM_ME) &&
+		   (strcasecmp(hostname, DKNICHOST) == 0 ||
+		    strcasecmp(hostname, "dk" QNICHOST_TAIL) == 0))
 		fprintf(fp, "--show-handles %s\r\n", query);
 	else if ((flags & WHOIS_SPAM_ME) ||
 		 strchr(query, ' ') != NULL)
 		fprintf(fp, "%s\r\n", query);
-	else if (strcmp(hostname, ANICHOST) == 0)
+	else if (strcasecmp(hostname, ANICHOST) == 0)
 		fprintf(fp, "+ %s\r\n", query);
-	else if (strcmp(hostres->ai_canonname, VNICHOST) == 0)
+	else if (strcasecmp(hostres->ai_canonname, VNICHOST) == 0)
 		fprintf(fp, "domain %s\r\n", query);
 	else
 		fprintf(fp, "%s\r\n", query);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601230120.u0N1KwjP097438>