- Add -k option for whois.krnic.net (hold details of IP address
authorLiam J. Foy <liamfoy@dragonflybsd.org>
Sun, 9 Jan 2005 13:30:06 +0000 (13:30 +0000)
committerLiam J. Foy <liamfoy@dragonflybsd.org>
Sun, 9 Jan 2005 13:30:06 +0000 (13:30 +0000)
  allocations within Korea) - FreeBSD
- Remove unnecessary casts
- Constify
- Update man page to reflect new option (-k)

usr.bin/whois/whois.1
usr.bin/whois/whois.c

index 4290592..3670eba 100644 (file)
@@ -31,9 +31,9 @@
 .\"
 .\"     From: @(#)whois.1      8.1 (Berkeley) 6/6/93
 .\" $FreeBSD: src/usr.bin/whois/whois.1,v 1.15.2.9 2002/11/17 15:05:55 mike Exp $
-.\" $DragonFly: src/usr.bin/whois/whois.1,v 1.3 2004/07/23 06:29:27 hmp Exp $
+.\" $DragonFly: src/usr.bin/whois/whois.1,v 1.4 2005/01/09 13:30:06 liamfoy Exp $
 .\"
-.Dd December 15, 2001
+.Dd January 9, 2005
 .Dt WHOIS 1
 .Os
 .Sh NAME
@@ -41,7 +41,7 @@
 .Nd "Internet domain name and network number directory service"
 .Sh SYNOPSIS
 .Nm
-.Op Fl aAbdgiIlmQrR6
+.Op Fl aAbdgiIklmQrR6
 .Op Fl c Ar country-code | Fl h Ar host
 .Op Fl p Ar port
 .Ar name ...
@@ -158,6 +158,12 @@ Use the Internet Assigned Numbers Authority
 .Pq Tn IANA
 database.
 It contains network information for top-level domains.
+.It Fl k
+Use the National Internet Development Agency of Korea's
+.Pq Tn KRNIC
+database.
+It contains network numbers and domain contact information
+for Korea.
 .It Fl l
 Use the Latin American and Caribbean IP address Regional Registry
 .Pq Tn LACNIC
index efea28d..841c78b 100644 (file)
  * @(#) Copyright (c) 1980, 1993 The Regents of the University of California.  All rights reserved.
  * @(#)whois.c 8.1 (Berkeley) 6/6/93
  * $FreeBSD: src/usr.bin/whois/whois.c,v 1.15.2.11 2003/02/25 20:59:41 roberto Exp $
- * $DragonFly: src/usr.bin/whois/whois.c,v 1.5 2004/10/29 15:44:41 liamfoy Exp $
+ * $DragonFly: src/usr.bin/whois/whois.c,v 1.6 2005/01/09 13:30:06 liamfoy Exp $
  */
 
 #include <sys/types.h>
 #include <sys/socket.h>
-#include <netinet/in.h>
+
 #include <arpa/inet.h>
+#include <netinet/in.h>
+
 #include <ctype.h>
 #include <err.h>
 #include <netdb.h>
@@ -57,6 +59,7 @@
 #define        GNICHOST        "whois.nic.gov"
 #define        ANICHOST        "whois.arin.net"
 #define        LNICHOST        "whois.lacnic.net"
+#define        KNICHOST        "whois.krnic.net"
 #define        RNICHOST        "whois.ripe.net"
 #define        PNICHOST        "whois.apnic.net"
 #define        RUNICHOST       "whois.ripn.net"
 #define WHOIS_RECURSE          0x01
 #define WHOIS_QUICK            0x02
 
-#define ishost(h) (isalnum((unsigned char)h) || h == '.' || h == '-')
+#define ishost(h) (isalnum(h) || h == '.' || h == '-')
 
 const char *ip_whois[] = { LNICHOST, RNICHOST, PNICHOST, BNICHOST, NULL };
 const char *port = DEFAULT_PORT;
 
-static char *choose_server(char *);
+static char    *choose_server(const char *);
 static struct addrinfo *gethostinfo(char const *host, int exit_on_error);
-static void s_asprintf(char **ret, const char *format, ...);
-static void usage(void);
-static void whois(const char *, const char *, int);
+static void    s_asprintf(char **ret, const char *format, ...);
+static void    usage(void);
+static void    whois(const char *, const char *, int);
 
 int
 main(int argc, char *argv[])
@@ -97,7 +100,7 @@ main(int argc, char *argv[])
 
        country = host = qnichost = NULL;
        flags = use_qnichost = 0;
-       while ((ch = getopt(argc, argv, "aAbc:dgh:ilImp:QrR6")) != -1) {
+       while ((ch = getopt(argc, argv, "aAbc:dgh:ilkImp:QrR6")) != -1) {
                switch (ch) {
                case 'a':
                        host = ANICHOST;
@@ -126,6 +129,9 @@ main(int argc, char *argv[])
                case 'I':
                        host = IANAHOST;
                        break;
+               case 'k':
+                       host = KNICHOST;
+                       break;
                case 'l':
                        host = LNICHOST;
                        break;
@@ -194,7 +200,7 @@ main(int argc, char *argv[])
  * caller must remember to free(3) the allocated memory.
  */
 static char *
-choose_server(char *domain)
+choose_server(const char *domain)
 {
        char *pos, *retval;
 
@@ -206,7 +212,7 @@ choose_server(char *domain)
                --pos;
        if (pos <= domain)
                return (NULL);
-       if (isdigit((unsigned char)*++pos))
+       if (isdigit(*++pos))
                s_asprintf(&retval, "%s", ANICHOST);
        else
                s_asprintf(&retval, "%s%s", pos, QNICHOST_TAIL);
@@ -284,7 +290,7 @@ whois(const char *query, const char *hostname, int flags)
        fflush(sfo);
        nhost = NULL;
        while ((buf = fgetln(sfi, &len)) != NULL) {
-               while (len > 0 && isspace((unsigned char)buf[len - 1]))
+               while (len > 0 && isspace(buf[len - 1]))
                        buf[--len] = '\0';
                printf("%.*s\n", (int)len, buf);
 
@@ -335,7 +341,7 @@ static void
 usage(void)
 {
        fprintf(stderr,
-           "usage: whois [-aAbdgilImQrR6] [-c country-code | -h hostname] "
+           "usage: whois [-aAbdgilkImQrR6] [-c country-code | -h hostname] "
            "[-p port] name ...\n");
        exit(EX_USAGE);
 }