tImprove pwpsend() to send all data - libeech - bittorrent library
 (HTM) git clone git://z3bra.org/libeech.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit ac6b3082a4dcd6694b7171658356d7bb917f1097
 (DIR) parent 4d2331780189dff51f9159dbaab0b972efd9b237
 (HTM) Author: z3bra <contactatz3bradotorg>
       Date:   Wed,  4 Jul 2018 08:52:38 +0200
       
       Improve pwpsend() to send all data
       
       Diffstat:
         M libeech.c                           |      13 ++++++++++++-
       
       1 file changed, 12 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/libeech.c b/libeech.c
       t@@ -439,7 +439,18 @@ pwprecv(struct peer *p)
        static ssize_t
        pwpsend(struct peer *p, char *m, size_t sz)
        {
       -        return send(p->fd, m, sz, MSG_NOSIGNAL);
       +        size_t s = 0;
       +        ssize_t r = 0;
       +
       +        while (s < sz) {
       +                r = send(p->fd, m + s, sz - s, MSG_NOSIGNAL);
       +                if (r < 0 && errno != EAGAIN)
       +                        return -1;
       +                if (r > 0)
       +                        s += r;
       +        }
       +
       +        return s;
        }
        
        /*