tAdd comments for the new xsendfile. - 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 8b62f1e60e9774368bfdb209f3bebc8f51d6e0b8
parent b92f702f27e642838e51e8b308c482c08ebdc786
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sun, 24 Sep 2017 18:35:50 +0200

Add comments for the new xsendfile.

Diffstat:
  ind.c                               |      10 ++++++++++

1 file changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/ind.c b/ind.c
t@@ -60,16 +60,21 @@ xsendfile(int fd, int sock)
         size_t bufsiz = BUFSIZ, count = 0;
         int len, sent, 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
 
+/*
+ * Disable Nagle algorithm, which means to sent segments as soon as possible.
+ */
 #ifdef TCP_NODELAY
         optval = 0;
         setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof(int));
t@@ -81,6 +86,10 @@ xsendfile(int fd, int sock)
                 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
t@@ -101,6 +110,7 @@ xsendfile(int fd, int sock)
                 return 0;
         }
 
+/* Different sendfile(2) implementations on different platforms. :/ */
 #ifdef __linux__
         return sendfile(sock, fd, NULL, count);
 #endif