iRemove sendfile. It does not work for TLS. - 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 a2eaebc870ac0a24f35beef0bf8ffa786d5933a3 /scm/geomyidae/commit/a2eaebc870ac0a24f35beef0bf8ffa786d5933a3.gph bitreich.org 70 1parent f1683459ab74d68e6ffb9e92687aab8aa7619c32 /scm/geomyidae/commit/f1683459ab74d68e6ffb9e92687aab8aa7619c32.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Sun, 7 Jun 2020 21:36:10 +0200 Err bitreich.org 70 i Err bitreich.org 70 iRemove sendfile. It does not work for TLS. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M ind.c | 48 ------------------------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 0 insertions(+), 48 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/ind.c b/ind.c /scm/geomyidae/file/ind.c.gph bitreich.org 70 i@@ -19,14 +19,6 @@ Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i Err bitreich.org 70 i-/* for sendfile(2) */ Err bitreich.org 70 i-#ifdef __linux__ Err bitreich.org 70 i-#include Err bitreich.org 70 i-#elif defined(__FreeBSD__) || defined(__DragonFly__) Err bitreich.org 70 i-#include Err bitreich.org 70 i-#include Err bitreich.org 70 i-#endif Err bitreich.org 70 i- Err bitreich.org 70 i #include "arg.h" Err bitreich.org 70 i #include "ind.h" Err bitreich.org 70 i #include "handlr.h" Err bitreich.org 70 i@@ -121,40 +113,12 @@ xsendfile(int fd, int sock) Err bitreich.org 70 i Err bitreich.org 70 i USED(optval); Err bitreich.org 70 i Err bitreich.org 70 i-/* Tell the kernel to not send small packets on every write. */ Err bitreich.org 70 i-#ifdef TCP_CORK Err bitreich.org 70 i- optval = 1; Err bitreich.org 70 i- setsockopt(sock, IPPROTO_TCP, TCP_CORK, &optval, sizeof(int)); Err bitreich.org 70 i-#endif Err bitreich.org 70 i- Err bitreich.org 70 i-/* TCP_CORK for FreeBSD */ Err bitreich.org 70 i-#ifdef TCP_NOPUSH Err bitreich.org 70 i- optval = 1; Err bitreich.org 70 i- setsockopt(sock, IPPROTO_TCP, TCP_NOPUSH, &optval, sizeof(int)); Err bitreich.org 70 i-#endif Err bitreich.org 70 i- Err bitreich.org 70 i-/* Err bitreich.org 70 i- * Enforce Nagle algorithm so big packets are sent out, if possible. Err bitreich.org 70 i- */ Err bitreich.org 70 i-#ifdef TCP_NODELAY Err bitreich.org 70 i- optval = 0; Err bitreich.org 70 i- setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof(int)); Err bitreich.org 70 i-#endif Err bitreich.org 70 i- Err bitreich.org 70 i if (fstat(fd, &st) >= 0) { Err bitreich.org 70 i if ((bufsiz = st.st_blksize) < BUFSIZ) Err bitreich.org 70 i bufsiz = BUFSIZ; Err bitreich.org 70 i count = st.st_size; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i-/* Err bitreich.org 70 i- * If we are on the said operating systems, use some special method for data Err bitreich.org 70 i- * transfer. Err bitreich.org 70 i- */ Err bitreich.org 70 i-#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__DragonFly__) Err bitreich.org 70 i- count = 0; Err bitreich.org 70 i-#endif Err bitreich.org 70 i- Err bitreich.org 70 i if (count == 0) { Err bitreich.org 70 i sendb = xmalloc(bufsiz); Err bitreich.org 70 i while ((len = read(fd, sendb, bufsiz)) > 0) { Err bitreich.org 70 i@@ -172,18 +136,6 @@ xsendfile(int fd, int sock) Err bitreich.org 70 i return 0; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i-/* Different sendfile(2) implementations on different platforms. :/ */ Err bitreich.org 70 i-#ifdef __linux__ Err bitreich.org 70 i- for (sent = 0; count > 0; count -= sent) { Err bitreich.org 70 i- sent = sendfile(sock, fd, 0, count); Err bitreich.org 70 i- if (sent < 0) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- } Err bitreich.org 70 i-#endif Err bitreich.org 70 i-#if defined(__FreeBSD__) || defined(__DragonFly__) Err bitreich.org 70 i- return sendfile(fd, sock, 0, count, NULL, NULL, 0); Err bitreich.org 70 i-#endif Err bitreich.org 70 i- Err bitreich.org 70 i return 0; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 .