=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/whois/whois.c,v retrieving revision 1.34 retrieving revision 1.35 diff -c -r1.34 -r1.35 *** src/usr.bin/whois/whois.c 2005/06/25 14:27:36 1.34 --- src/usr.bin/whois/whois.c 2005/06/27 21:01:43 1.35 *************** *** 1,4 **** ! /* $OpenBSD: whois.c,v 1.34 2005/06/25 14:27:36 henning Exp $ */ /* * Copyright (c) 1980, 1993 --- 1,4 ---- ! /* $OpenBSD: whois.c,v 1.35 2005/06/27 21:01:43 henning Exp $ */ /* * Copyright (c) 1980, 1993 *************** *** 38,43 **** --- 38,44 ---- #include #include + #include #include #include #include *************** *** 64,70 **** #define WHOIS_RECURSE 0x01 #define WHOIS_QUICK 0x02 ! const char *port = WHOIS_PORT; const char *ip_whois[] = { LNICHOST, RNICHOST, PNICHOST, BNICHOST, NULL }; __dead void usage(void); --- 65,71 ---- #define WHOIS_RECURSE 0x01 #define WHOIS_QUICK 0x02 ! const char *port_whois = WHOIS_PORT; const char *ip_whois[] = { LNICHOST, RNICHOST, PNICHOST, BNICHOST, NULL }; __dead void usage(void); *************** *** 109,115 **** host = MNICHOST; break; case 'p': ! port = optarg; break; case 'q': /* deprecated, now the default */ --- 110,116 ---- host = MNICHOST; break; case 'p': ! port_whois = optarg; break; case 'q': /* deprecated, now the default */ *************** *** 139,145 **** flags |= WHOIS_RECURSE; for (name = *argv; (name = *argv) != NULL; argv++) rval += whois(name, host ? host : choose_server(name, country), ! port, flags); exit(rval); } --- 140,146 ---- flags |= WHOIS_RECURSE; for (name = *argv; (name = *argv) != NULL; argv++) rval += whois(name, host ? host : choose_server(name, country), ! port_whois, flags); exit(rval); } *************** *** 169,178 **** --- 170,181 ---- for (s = -1, ai = res; ai != NULL; ai = ai->ai_next) { s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); if (s == -1) { + error = errno; reason = "socket"; continue; } if (connect(s, ai->ai_addr, ai->ai_addrlen) == -1) { + error = errno; reason = "connect"; close(s); s = -1; *************** *** 181,189 **** break; /*okay*/ } if (s == -1) { ! if (reason) warn("%s: %s", server, reason); ! else warn("unknown error in connection attempt"); freeaddrinfo(res); return (1); --- 184,193 ---- break; /*okay*/ } if (s == -1) { ! if (reason) { ! errno = error; warn("%s: %s", server, reason); ! } else warn("unknown error in connection attempt"); freeaddrinfo(res); return (1); *************** *** 266,271 **** --- 270,276 ---- { static char *server; const char *qhead; + char *nserver; char *ep; size_t len; *************** *** 283,290 **** } else if (isdigit(*(++qhead))) return (ANICHOST); len = strlen(qhead) + sizeof(QNICHOST_TAIL); ! if ((server = realloc(server, len)) == NULL) err(1, "realloc"); strlcpy(server, qhead, len); strlcat(server, QNICHOST_TAIL, len); return (server); --- 288,296 ---- } else if (isdigit(*(++qhead))) return (ANICHOST); len = strlen(qhead) + sizeof(QNICHOST_TAIL); ! if ((nserver = realloc(server, len)) == NULL) err(1, "realloc"); + server = nserver; strlcpy(server, qhead, len); strlcat(server, QNICHOST_TAIL, len); return (server);