Move programs in /config into appropriate subdirectories.
[doldaconnect.git] / config / speedrec.c
diff --git a/config/speedrec.c b/config/speedrec.c
deleted file mode 100644 (file)
index 4638e33..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/file.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <time.h>
-#include <signal.h>
-
-char buf[65536];
-volatile int eof;
-
-void sighandler(int sig)
-{
-    eof = 1;
-}
-
-int main(int argc, char **argv)
-{
-    int i;
-    int ret, fd;
-    time_t starttime, endtime;
-    long long numbytes;
-    size_t datalen;
-    FILE *recfile;
-    int thisrec, numrecs, numuses, maxrec;
-    int recs[5];
-    
-    if(argc < 2)
-    {
-       fprintf(stderr, "usage: speedrec recfile\n");
-       exit(1);
-    }
-    numbytes = 0;
-    starttime = endtime = 0;
-    datalen = 0;
-    eof = 0;
-    signal(SIGHUP, sighandler);
-    signal(SIGINT, sighandler);
-    signal(SIGTERM, sighandler);
-    while(1)
-    {
-       ret = read(0, buf, sizeof(buf));
-       if((ret < 0) && (errno != EINTR))
-       {
-           perror("cannot read");
-           exit(1);
-       }
-       if((ret == 0) || eof)
-           break;
-       if(starttime == 0)
-           starttime = time(NULL);
-       endtime = time(NULL);
-       datalen = ret;
-       numbytes += ret;
-       while(datalen > 0)
-       {
-           ret = write(1, buf, datalen);
-           if((ret < 0) && (errno != EINTR))
-           {
-               perror("cannot write");
-               exit(1);
-           }
-           memmove(buf, buf + ret, datalen -= ret);
-       }
-    }
-    if((starttime == 0) || (endtime == 0) || (endtime == starttime))
-       exit(0);
-    if(numbytes == 0)
-       exit(0);
-    thisrec = (int)(numbytes / ((long long)(endtime - starttime)));
-    if((fd = open(argv[1], O_RDWR | O_CREAT, 0666)) < 0)
-    {
-       perror(argv[1]);
-       exit(1);
-    }
-    recfile = fdopen(fd, "r+");
-    close(0);
-    close(1);
-    flock(fd, LOCK_EX);
-    if(fscanf(recfile, "%i\n", &numuses) < 1)
-       numuses = 0;
-    if(fscanf(recfile, "%i\n", &maxrec) < 1)
-       maxrec = 0;
-    if(fscanf(recfile, "%i\n", &numrecs) < 1)
-       numrecs = 0;
-    for(i = 0; i < numrecs; i++)
-       fscanf(recfile, "%i\n", &recs[i]);
-    if(numrecs == 5)
-    {
-       for(i = 0; i < 4; i++)
-           recs[i] = recs[i + 1];
-       numrecs = 4;
-    }
-    recs[numrecs++] = thisrec;
-    rewind(recfile);
-    ftruncate(fd, 0);
-    fprintf(recfile, "%i\n", numuses + 1);
-    fprintf(recfile, "%i\n", (thisrec > maxrec)?thisrec:maxrec);
-    fprintf(recfile, "%i\n", numrecs);
-    for(i = 0; i < numrecs; i++)
-       fprintf(recfile, "%i\n", recs[i]);
-    flock(fd, LOCK_UN);
-    fclose(recfile);
-    return(0);
-}