#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' },
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)