static int hosts(int argc, char *argv[]) { char addr[IN6ADDRSZ]; int i, rv = RV_OK; struct hostent *he; sethostent(1); if (argc == 2) { while ((he = gethostent()) != NULL) hostsprint(he); } else { for (i = 2; i < argc; i++) { he = NULL; if (inet_pton(AF_INET6, argv[i], (void *)addr) > 0) he = gethostbyaddr(addr, IN6ADDRSZ, AF_INET6); else if (inet_pton(AF_INET, argv[i], (void *)addr) > 0) he = gethostbyaddr(addr, INADDRSZ, AF_INET); if (he != NULL) hostsprint(he); else if ((rv = hostsaddrinfo(argv[i])) == RV_NOTFOUND) break; } } endhostent(); return rv; }
static int hosts(int argc, char *argv[]) { struct hostent *he; char addr[IN6ADDRSZ]; int i, rv; assert(argc > 1); assert(argv != NULL); sethostent(1); rv = RV_OK; if (argc == 2) { while ((he = gethostent()) != NULL) hostsprint(he); } else { for (i = 2; i < argc; i++) { if (inet_pton(AF_INET6, argv[i], (void *)addr) > 0) he = gethostbyaddr(addr, IN6ADDRSZ, AF_INET6); else if (inet_pton(AF_INET, argv[i], (void *)addr) > 0) he = gethostbyaddr(addr, INADDRSZ, AF_INET); else he = gethostbyname(argv[i]); if (he != NULL) hostsprint(he); else { rv = RV_NOTFOUND; break; } } } endhostent(); return rv; }