summaryrefslogtreecommitdiffstats
path: root/contrib/bind/tools/addr.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind/tools/addr.c')
-rw-r--r--contrib/bind/tools/addr.c173
1 files changed, 0 insertions, 173 deletions
diff --git a/contrib/bind/tools/addr.c b/contrib/bind/tools/addr.c
deleted file mode 100644
index 98a505c..0000000
--- a/contrib/bind/tools/addr.c
+++ /dev/null
@@ -1,173 +0,0 @@
-#if !defined(lint) && !defined(SABER)
-static char rcsid[] = "$Id: addr.c,v 8.4 1996/05/23 08:21:28 vixie Exp $";
-#endif /* not lint */
-
-/* Copyright (c) 1996 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-#include <sys/param.h>
-#include <sys/file.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-#include <string.h>
-#include <stdio.h>
-#include <ctype.h>
-#include "../conf/portability.h"
-
-extern char *optarg;
-extern int optind;
-extern int opterr;
-extern int optopt;
-
-static const char *prog = "addr";
-
-#define BIGGEST_ADDRESS IN6ADDRSZ
-
-static void
-usage() {
- fprintf(stderr,
- "usage: %s [-4] [-6] [-n hexstring] [-p address]\n",
- prog);
- exit(1);
-}
-
-/* Warning: this scribbles on `dst' even if it's going to return `0'. */
-static int
-hexstring(src, dst, len)
- const char *src;
- u_char *dst;
- int len;
-{
- static const char xdigits[] = "0123456789abcdef";
- u_char *ptr = dst, *end = dst + len;
- u_int val;
- int ch, digits;
-
- val = 0;
- digits = 0;
- bzero((void*)dst, len);
- while ((ch = *src++) != '\0') {
- if (ch == '0' && (*src == 'x' || *src == 'X')) {
- src++;
- continue;
- }
- if (isascii(ch) && (isspace(ch) || ispunct(ch))) {
- if (digits > 0) {
- if (ptr == end)
- return (0);
- *ptr++ = (u_char) (val & 0xff);
- val = 0;
- digits = 0;
- }
- digits = 0;
- continue;
- }
- if (!isascii(ch) || !isxdigit(ch))
- return (0);
- if (isupper(ch))
- ch = tolower(ch);
- /* Clock it in using little endian arithmetic. */
- val <<= 4;
- val |= (strchr(xdigits, ch) - xdigits);
- if (++digits == 2) {
- if (ptr == end)
- return (0);
- *ptr++ = (u_char) (val & 0xff);
- digits = 0;
- val = 0;
- }
- }
- if (digits > 0) {
- if (ptr == end)
- return (0);
- *ptr++ = (u_char) (val & 0xff);
- }
- return ((ptr - dst) == len);
-}
-
-static void
-display(input, af, addr, len)
- const char *input;
- int af;
- const u_char *addr;
- int len;
-{
- static int before = 0;
- char p[sizeof "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:255.255.255.255"];
- int i;
-
- if (before)
- putchar('\n');
- else
- before++;
-
- printf("Input: \"%s\"\n", input);
- printf("Network: [af%d len%d]", af, len);
- for (i = 0; i < len; i++)
- printf(" %02x", addr[i]);
- putchar('\n');
- printf("Presentation: \"%s\"\n", inet_ntop(af, addr, p, sizeof p));
-}
-
-int
-main(argc, argv)
- int argc;
- char *argv[];
-{
- u_char addr[BIGGEST_ADDRESS];
- int optchr, af, len;
-
- prog = argv[0];
- af = AF_INET;
- len = INADDRSZ;
- while ((optchr = getopt(argc, argv, "46n:p:")) != -1) {
- switch (optchr) {
- case '4':
- af = AF_INET;
- len = INADDRSZ;
- break;
- case '6':
- af = AF_INET6;
- len = IN6ADDRSZ;
- break;
- case 'n':
- if (!hexstring(optarg, addr, len)) {
- fprintf(stderr, "bad hex string: \"%s\"\n",
- optarg);
- usage();
- /* NOTREACHED */
- }
- display(optarg, af, addr, len);
- break;
- case 'p':
- if (inet_pton(af, optarg, addr) <= 0) {
- fprintf(stderr, "bad address: \"%s\"\n",
- optarg);
- usage();
- /* NOTREACHED */
- }
- display(optarg, af, addr, len);
- break;
- default:
- usage();
- /* NOTREACHED */
- }
- }
- exit(0);
- /* NOTREACHED */
-}
OpenPOWER on IntegriCloud