void print_lines(int count) { for (int i = 3; i < count + 3; i++) { print_hashes(count, i); printf("\n"); } }
int main(int argc, char **argv) { int confd; dn_header_t header; char netmask[INET_ADDRSTRLEN], network[INET_ADDRSTRLEN]; struct in_addr in_addr; unsigned int i; if (argc < 2) { (void) fprintf(stderr, "usage: %s container [container ...]\n", argv[0]); return (EXIT_FAILURE); } for (i = 1; argv[i] != NULL; i++) { confd = open(argv[i], O_RDONLY); if (confd == -1) { (void) fprintf(stderr, "%s: cannot open container " "`%s': %s\n", argv[0], argv[i], strerror(errno)); continue; } if (read(confd, &header, sizeof (header)) != sizeof (header) || header.dnh_magic != DN_MAGIC) { (void) fprintf(stderr, "%s: container `%s' is not a " "binfiles network container\n", argv[0], argv[i]); continue; } (void) printf("binfiles network container `%s':\n", argv[i]); in_addr.s_addr = header.dnh_network; (void) inet_ntop(AF_INET, &in_addr, network, INET_ADDRSTRLEN); in_addr.s_addr = header.dnh_netmask; (void) inet_ntop(AF_INET, &in_addr, netmask, INET_ADDRSTRLEN); (void) printf("%12s: %s\n", "network", network); (void) printf("%12s: %s\n", "netmask", netmask); (void) printf("%12s: %d\n", "dirtybit", header.dnh_dirty); (void) printf("%12s: %d\n", "version", header.dnh_version); (void) printf("%12s: %d\n", "active image", header.dnh_image); (void) printf("%12s: %d\n", "temp image", header.dnh_tempimage); (void) printf("%12s: %d\n", "checks", header.dnh_checks); (void) printf("%12s: %d\n", "errors", header.dnh_errors); print_hashes(confd, header); (void) close(confd); } return (EXIT_SUCCESS); }