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:
1 file changed, 10 insertions(+), 0 deletions(-)
diff --git a/ind.c b/ind.c
@@ -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));
@@ -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
@@ -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