iForce the sending of bytes. - geomyidae - A small C-based gopherd. Err bitreich.org 70 hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70 1Log /scm/geomyidae/log.gph bitreich.org 70 1Files /scm/geomyidae/files.gph bitreich.org 70 1Refs /scm/geomyidae/refs.gph bitreich.org 70 1Tags /scm/geomyidae/tag bitreich.org 70 1README /scm/geomyidae/file/README.gph bitreich.org 70 1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 953a8272e76a2a224155d2b3f23c1018eec6c501 /scm/geomyidae/commit/953a8272e76a2a224155d2b3f23c1018eec6c501.gph bitreich.org 70 1parent 0fd85c6a6fb9acd564e77ae4824d9870d6a0b1c4 /scm/geomyidae/commit/0fd85c6a6fb9acd564e77ae4824d9870d6a0b1c4.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Fri, 18 Sep 2015 19:08:37 +0200 Err bitreich.org 70 i Err bitreich.org 70 iForce the sending of bytes. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M handlr.c | 12 +++++++++--- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 9 insertions(+), 3 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/handlr.c b/handlr.c /scm/geomyidae/file/handlr.c.gph bitreich.org 70 i@@ -105,7 +105,7 @@ handlebin(int sock, char *file, char *port, char *base, char *args, Err bitreich.org 70 i char *sear, char *ohost) Err bitreich.org 70 i { Err bitreich.org 70 i char sendb[1024]; Err bitreich.org 70 i- int len, fd; Err bitreich.org 70 i+ int len, fd, sent; Err bitreich.org 70 i Err bitreich.org 70 i len = -1; Err bitreich.org 70 i USED(port); Err bitreich.org 70 i@@ -116,8 +116,14 @@ handlebin(int sock, char *file, char *port, char *base, char *args, Err bitreich.org 70 i Err bitreich.org 70 i fd = open(file, O_RDONLY); Err bitreich.org 70 i if(fd >= 0) { Err bitreich.org 70 i- while((len = read(fd, sendb, sizeof(sendb))) > 0) Err bitreich.org 70 i- send(sock, sendb, len, 0); Err bitreich.org 70 i+ while((len = read(fd, sendb, sizeof(sendb))) > 0) { Err bitreich.org 70 i+ while(len > 0) { Err bitreich.org 70 i+ sent = send(sock, sendb, len, 0); Err bitreich.org 70 i+ if(sent < 0) Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ len -= sent; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ } Err bitreich.org 70 i close(fd); Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 .