Force the sending of bytes. - geomyidae - A small C-based gopherd.
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 953a8272e76a2a224155d2b3f23c1018eec6c501
 (DIR) parent 0fd85c6a6fb9acd564e77ae4824d9870d6a0b1c4
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Fri, 18 Sep 2015 19:08:37 +0200
       
       Force the sending of bytes.
       
       Diffstat:
         handlr.c                            |      12 +++++++++---
       
       1 file changed, 9 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/handlr.c b/handlr.c
       @@ -105,7 +105,7 @@ handlebin(int sock, char *file, char *port, char *base, char *args,
                        char *sear, char *ohost)
        {
                char sendb[1024];
       -        int len, fd;
       +        int len, fd, sent;
        
                len = -1;
                USED(port);
       @@ -116,8 +116,14 @@ handlebin(int sock, char *file, char *port, char *base, char *args,
        
                fd = open(file, O_RDONLY);
                if(fd >= 0) {
       -                while((len = read(fd, sendb, sizeof(sendb))) > 0)
       -                        send(sock, sendb, len, 0);
       +                while((len = read(fd, sendb, sizeof(sendb))) > 0) {
       +                        while(len > 0) {
       +                                sent = send(sock, sendb, len, 0);
       +                                if(sent < 0)
       +                                        break;
       +                                len -= sent;
       +                        }
       +                }
                        close(fd);
                }
        }