tUse SIGALRM to make the server timeout - synk - synchronize files between hosts
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit cc46dfd595f112a68c17b7d01be792228e506aec
 (DIR) parent 06e9c0735e637b1caf7bc32415880039e303f488
 (HTM) Author: Willy <willyatmailoodotorg>
       Date:   Sat,  3 Sep 2016 23:34:46 +0200
       
       Use SIGALRM to make the server timeout
       
       Diffstat:
         M synk.c                              |       4 ++++
       
       1 file changed, 4 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/synk.c b/synk.c
       t@@ -24,6 +24,7 @@
        #define TIMESTAMP_MAX  19 /* length of LONG_MAX */
        #define CONNECTION_MAX 1
        #define RECVSIZ        512
       +#define TIMEOUT        5
        
        /* hold a socket connection, used to pass a connection to a thread */
        struct client_t {
       t@@ -287,6 +288,8 @@ serverloop(in_addr_t host, in_port_t port)
                        return -1;
                }
        
       +        alarm(0); /* cancel previously set SIGALRM */
       +
                c = malloc(sizeof(struct client_t));
                c->fd = cfd;
                c->inet = clt.sin_addr;
       t@@ -566,6 +569,7 @@ main(int argc, char *argv[])
                        }
                        break;
                case SYNK_SERVER:
       +                alarm(TIMEOUT);
                        serverloop(resolve(hostname)->s_addr, port);
                        break;
                }