]> git.sesse.net Git - jam/commitdiff
Add a loop listening for new connections.
authorsgunderson@bigfoot.com <>
Wed, 31 Jan 2007 16:21:26 +0000 (17:21 +0100)
committersgunderson@bigfoot.com <>
Wed, 31 Jan 2007 16:21:26 +0000 (17:21 +0100)
jam.c

diff --git a/jam.c b/jam.c
index 9b7b8fd99e96b280001b9034eb53de5caee13c32..d22ced453ff2c4769b9a558f895c54c59d799960 100644 (file)
--- a/jam.c
+++ b/jam.c
@@ -4,6 +4,13 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 
+void *receiver_worker(void *arg)
+{
+       int sock = (int)arg;
+       printf("Received worker for socket %u\n", sock);
+       pthread_exit(0);
+}
+
 int get_server_socket(unsigned short port)
 {
        int server_sock;
@@ -36,5 +43,26 @@ int main()
 {
        int server_sock = get_server_socket(2007);
 
+       // FIXME: fire off sender workers here
+
+       /*
+        * Listen for incoming connections, spawning off one receiver
+        * thread for each (which will just gobble up the data until
+        * we're done).
+        */
+       for ( ;; ) {
+               struct sockaddr_in addr;
+               socklen_t addr_len = sizeof(addr);
+               pthread_t thread;
+
+               int sock = accept(server_sock, (struct sockaddr *)&addr, &addr_len);
+               if (sock == -1) {
+                       perror("accept()");
+                       exit(1);
+               }
+
+               pthread_create(&thread, NULL, receiver_worker, (void *)sock);
+       }
+
        exit(0);
 }