geomyidae

A small C-based gopherd. (gopher://bitreich.org/1/scm/geomyidae)
git clone git://r-36.net/geomyidae
Log | Files | Refs | README | LICENSE

commit a2eaebc870ac0a24f35beef0bf8ffa786d5933a3
parent f1683459ab74d68e6ffb9e92687aab8aa7619c32
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sun,  7 Jun 2020 21:36:10 +0200

Remove sendfile. It does not work for TLS.

Diffstat:
ind.c | 48------------------------------------------------
1 file changed, 0 insertions(+), 48 deletions(-)

diff --git a/ind.c b/ind.c @@ -19,14 +19,6 @@ #include <sys/ioctl.h> #include <limits.h> -/* for sendfile(2) */ -#ifdef __linux__ -#include <sys/sendfile.h> -#elif defined(__FreeBSD__) || defined(__DragonFly__) -#include <sys/types.h> -#include <sys/uio.h> -#endif - #include "arg.h" #include "ind.h" #include "handlr.h" @@ -121,40 +113,12 @@ xsendfile(int fd, int sock) USED(optval); -/* Tell the kernel to not send small packets on every write. */ -#ifdef TCP_CORK - optval = 1; - setsockopt(sock, IPPROTO_TCP, TCP_CORK, &optval, sizeof(int)); -#endif - -/* TCP_CORK for FreeBSD */ -#ifdef TCP_NOPUSH - optval = 1; - setsockopt(sock, IPPROTO_TCP, TCP_NOPUSH, &optval, sizeof(int)); -#endif - -/* - * Enforce Nagle algorithm so big packets are sent out, if possible. - */ -#ifdef TCP_NODELAY - optval = 0; - setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof(int)); -#endif - if (fstat(fd, &st) >= 0) { if ((bufsiz = st.st_blksize) < BUFSIZ) bufsiz = BUFSIZ; count = st.st_size; } -/* - * If we are on the said operating systems, use some special method for data - * transfer. - */ -#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__DragonFly__) - count = 0; -#endif - if (count == 0) { sendb = xmalloc(bufsiz); while ((len = read(fd, sendb, bufsiz)) > 0) { @@ -172,18 +136,6 @@ xsendfile(int fd, int sock) return 0; } -/* Different sendfile(2) implementations on different platforms. :/ */ -#ifdef __linux__ - for (sent = 0; count > 0; count -= sent) { - sent = sendfile(sock, fd, 0, count); - if (sent < 0) - return -1; - } -#endif -#if defined(__FreeBSD__) || defined(__DragonFly__) - return sendfile(fd, sock, 0, count, NULL, NULL, 0); -#endif - return 0; }