]> git.sesse.net Git - jam/commitdiff
Start parsing the destination list.
authorsgunderson@bigfoot.com <>
Wed, 31 Jan 2007 18:15:54 +0000 (19:15 +0100)
committersgunderson@bigfoot.com <>
Wed, 31 Jan 2007 18:15:54 +0000 (19:15 +0100)
jam.c

diff --git a/jam.c b/jam.c
index 0ebda023e129d58009959326714286fd19d3f5d6..8a6414675b25199efa38fd2ececb938b56efd4bd 100644 (file)
--- a/jam.c
+++ b/jam.c
@@ -1,12 +1,17 @@
 #include <stdio.h>
+#include <string.h>
 #include <stdlib.h>
 #include <getopt.h>
+#include <netdb.h>
 #include <unistd.h>
 #include <pthread.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 
 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)