Introduction
Introduction Statistics Contact Development Disclaimer Help
Add comments for the new xsendfile. - geomyidae - A small C-based gopherd.
git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfri…
Log
Files
Refs
Tags
README
LICENSE
---
commit 8b62f1e60e9774368bfdb209f3bebc8f51d6e0b8
parent b92f702f27e642838e51e8b308c482c08ebdc786
Author: Christoph Lohmann <[email protected]>
Date: Sun, 24 Sep 2017 18:35:50 +0200
Add comments for the new xsendfile.
Diffstat:
M ind.c | 10 ++++++++++
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
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.