From 9b941ce45484431bf095ffc39f242e81c716cbd5 Mon Sep 17 00:00:00 2001 From: Martin Nagy Date: Tue, 9 Dec 2008 19:31:51 +0100 Subject: Initial import. --- contrib/query-loc-0.4.0/query-loc.c | 98 +++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 contrib/query-loc-0.4.0/query-loc.c (limited to 'contrib/query-loc-0.4.0/query-loc.c') diff --git a/contrib/query-loc-0.4.0/query-loc.c b/contrib/query-loc-0.4.0/query-loc.c new file mode 100644 index 0000000..2492d5b --- /dev/null +++ b/contrib/query-loc-0.4.0/query-loc.c @@ -0,0 +1,98 @@ +#include "loc.h" + +/* $Id: query-loc.c,v 1.1 2008/02/15 01:47:15 marka Exp $ */ + +/* Global variables */ +char *progname; +short debug; + +int +main (argc, argv) + int argc; + char *argv[]; +{ + extern char *optarg; + extern int optind; + + short verbose = FALSE; + char *host; + + char ch; + + char *loc = NULL; + struct in_addr addr; + struct hostent *hp; + + progname = argv[0]; + while ((ch = getopt (argc, argv, "vd:")) != EOF) + { + switch (ch) + { + case 'v': + verbose = TRUE; + break; + case 'd': + debug = atoi (optarg); + if (debug <= 0) + { + (void) fprintf (stderr, + "%s: illegal debug value.\n", progname); + exit (2); + } + break; + default: + usage (); + } + } + argc -= optind; + argv += optind; + if (argc != 1) + { + usage (); + } + if (verbose || debug) + { + printf ("\nThis is %s, version %s.\n\n", progname, VERSION); + } + host = argv[0]; + (void) res_init (); + + if ((addr.s_addr = inet_addr (host)) == INADDR_NONE) + { + if (debug >= 1) + printf ("%s is a name\n", host); + loc = getlocbyname (host, FALSE); + } + else + { + if (debug >= 1) + printf ("%s is an IP address ", host); + hp = (struct hostent *) gethostbyaddr + ((char *) &addr, sizeof (addr), AF_INET); + if (hp) + { + if (debug >= 1) + printf ("and %s is its official name\n", + hp->h_name); + loc = getlocbyname (hp->h_name, FALSE); + } + else + { + if (debug >= 1) + printf ("which has no name\n"); + loc = getlocbyaddr (addr, NULL); + } + } + if (loc == NULL) + { + printf ("No LOCation found for %s\n", host); + exit (1); + } + else + { + if (verbose || debug) + printf ("LOCation for %s is ", host); + printf ("%s\n", loc); + exit (0); + } +} -- cgit