$OpenBSD: patch-nsping_c,v 1.1 2002/02/24 00:28:45 pvalchev Exp $ --- nsping.c.orig Wed Nov 26 01:11:39 1997 +++ nsping.c Sat Feb 23 17:23:27 2002 @@ -57,8 +57,7 @@ int main(int argc, char **argv) { u_int32_t address = INADDR_ANY; u_int32_t port = getpid() + 1024; char *timearg = NULL; - char c; - int i; + int i, c; for(i = 0; i < QUERY_BACKLOG; i++) { Queries[i].id = -1; @@ -67,7 +66,7 @@ int main(int argc, char **argv) { #define OPTS "z:h:t:p:dP:a:c:T:rR" - while((c = getopt(argc, argv, OPTS)) != EOF) { + while((c = getopt(argc, argv, OPTS)) != -1) { switch(c) { case 'c': Max_Sends = atoi(optarg); @@ -189,10 +188,14 @@ int main(int argc, char **argv) { int guess_zone() { char lhn[MAXDNAME]; + struct hostent *hp; char *cp; if(gethostname(lhn, MAXDNAME) < 0) return(0); + if((hp = gethostbyname(lhn)) == NULL) + return(0); + strlcpy(lhn, hp->h_name, sizeof(lhn)); cp = strchr(lhn, '.'); if(!cp || !(*(++cp))) @@ -679,9 +682,7 @@ char *xstrdup(char *v) { /* -------------------------------------------------------------------------- */ void usage() { - fprintf(stderr, "nsping [ -z | -h ] -p -t \n" - "\t\t-a -P \n" - "\t\t-T <-r | -R, recurse?>\n"); + fprintf(stderr, "Usage: nsping [-dR] [-c count] [-z zone | -h hostname] [-t timeout] [-p dport] [-P sport] [-a saddr] [-T querytype]\n"); return; }