Bladeren bron

Single threaded listen function

Yannick Ulrich 3 jaren geleden
bovenliggende
commit
9adbf8bb3f
1 gewijzigde bestanden met toevoegingen van 31 en 1 verwijderingen
  1. 31 1
      main.c

+ 31 - 1
main.c

@@ -96,6 +96,36 @@ queue_job(struct Job job)
     return 1;
 }
 
+int
+listen_and_convert()
+{
+    int sock, fd;
+    struct sockaddr_un cli_addr;
+    unsigned int clilen;
+    struct Job j;
+
+    clilen = sizeof(cli_addr);
+
+    make_socket_path();
+    postprocess_setup();
+    sock = listen_on_socket();
+
+
+    while(1) {
+        fd = accept(sock, (struct sockaddr *)&cli_addr, &clilen);
+        if (fd < 0) {
+            err("failed to accept");
+            return 0;
+        }
+        if(read(fd, &j, sizeof(j)) < 0) {
+            err("failed to read");
+            return 0;
+        }
+        printf("%s -> %s\n", j.burstdir, j.target);
+        close(fd);
+    }
+}
+
 void
 make_socket_path()
 {
@@ -119,10 +149,10 @@ main(int argc, char *argv[])
 
     if (argc != 4) {
         printf("usage: %s burst-dir target-name save-dng\n", argv[0]);
+        listen_and_convert();
         exit(1);
     }
 
-    postprocess_setup();
 
     // Parse command line arguments into the job struct
     job.pid = 0;