From: sgunderson@bigfoot.com <> Date: Wed, 31 Jan 2007 18:15:54 +0000 (+0100) Subject: Start parsing the destination list. X-Git-Url: https://git.sesse.net/?p=jam;a=commitdiff_plain;h=a120b20974f7ff627265556cd515a02be7dd917f Start parsing the destination list. --- diff --git a/jam.c b/jam.c index 0ebda02..8a64146 100644 --- a/jam.c +++ b/jam.c @@ -1,12 +1,17 @@ #include +#include #include #include +#include #include #include #include #include unsigned short port = 2007; +struct in_addr *destinations = NULL; +unsigned num_destinations = 0; +unsigned room_destinations = 0; const static struct option longopts[] = { { "destination-file", required_argument, NULL, 'd' }, @@ -16,7 +21,47 @@ const static struct option longopts[] = { void read_destination_list(char *filename) { - + char buf[256]; + FILE *in = fopen(filename, "r"); + if (in == NULL) { + perror(filename); + exit(1); + } + + for ( ;; ) { + char *ptr; + struct in_addr addr; + struct hostent *he; + + if (fgets(buf, 256, in) == NULL) + break; + + ptr = strchr(buf, '\n'); + if (ptr != NULL) + *ptr = 0; + + ptr = strchr(buf, '\r'); + if (ptr != NULL) + *ptr = 0; + + ptr = buf + strspn(buf, " \t"); + + if (ptr[0] == '#' || ptr[0] == 0) + continue; + + he = gethostbyname(ptr); + if (he == NULL) { + perror(ptr); + exit(1); + } + + // just pick the first for now + memcpy(&addr.s_addr, he->h_addr_list[0], sizeof(addr.s_addr)); + + // FIXME: store here + } + + fclose(in); } void parse_options(int argc, char **argv)