]> git.zerfleddert.de Git - record-dvb/blobdiff - record-dvb.c
s/atol/atoi/
[record-dvb] / record-dvb.c
index aa48bb47e65cad44608941feca173d80d8a81a25..45d2fcb353c8888448e762b1749fdf1fb7d5f92a 100644 (file)
@@ -13,7 +13,7 @@
 #include "http.h"
 #include "mcast.h"
 
-#define CHUNKSIZE 8192
+#define CHUNKSIZE 1500
 
 void record(int(*open_fn)(char *), char *url, char *outfile, int duration)
 {
@@ -39,10 +39,12 @@ void record(int(*open_fn)(char *), char *url, char *outfile, int duration)
 
        do {
                if ((bytes = recv(in, buffer, CHUNKSIZE, 0)) < 1) {
-                       perror("recv");
-                       exit(EXIT_FAILURE);
+                       /* TODO: Insert better connection-loss recovery here */
+                       if ((in = (*open_fn)(url)) < 0) {
+                               sleep(1);
+                               continue;
+                       }
                }
-
                written = 0;
                do {
                        if ((i = write(out, buffer, bytes-written)) < 0) {
@@ -69,10 +71,10 @@ int main(int argc, char **argv)
 
        if (argc == 4) {
                url = argv[1];
-               duration = atol(argv[2])*60;
+               duration = atoi(argv[2])*60;
                outfile = argv[3];
        } else {
-               fprintf(stderr,"Syntax: %s URL duration outfile\n", argv[0]);
+               fprintf(stderr,"Syntax: %s URL duration_in_minutes outfile\n", argv[0]);
                exit(EXIT_FAILURE);
        }
 
Impressum, Datenschutz