aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-08-29 20:54:24 +0000
committerLaurent Bercot <ska@appnovation.com>2025-08-29 20:54:24 +0000
commit62cc58a2589b136176d4bb49ba19cab7fa76f8f8 (patch)
tree0173f0c2ee6b78d2a98b09109a089468bb4824dd
parenta83de08e41f91f878e5bf975cd0e30d23b4dda16 (diff)
downloadskalibs-62cc58a2589b136176d4bb49ba19cab7fa76f8f8.tar.gz
Add socket_tcpdelay
Signed-off-by: Laurent Bercot <ska@appnovation.com>
-rw-r--r--NEWS2
-rw-r--r--doc/upgrade.html3
-rw-r--r--package/deps.mak1
-rw-r--r--src/include/skalibs/socket.h1
-rw-r--r--src/libstddjb/socket_tcpdelay.c15
-rw-r--r--src/libstddjb/socket_tcpnodelay.c4
6 files changed, 22 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 346beeb..4a52d3b 100644
--- a/NEWS
+++ b/NEWS
@@ -8,7 +8,7 @@ In 2.14.5.0
- crc32c implementation: skalibs/crc32c.h
- new skalibs/prog.h header for PROG modifications
- new functions: symlink_at, mkdirp, mkdirp2, mkntemp,
- atomic_symlink4, qsortr, env_dump4
+ atomic_symlink4, qsortr, env_dump4, socket_tcpdelay
In 2.14.4.0
diff --git a/doc/upgrade.html b/doc/upgrade.html
index e9d30cd..1536a04 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -22,7 +22,8 @@
<li> Support for shared libraries on MacOS </li>
<li> New <tt>skalibs/prog.h</tt> header, for PROG modifications </li>
<li> New functions: <tt>crc32c</tt>, <tt>symlink_at</tt>, <tt>mkdirp</tt>,
-<tt>atomic_symlink4</tt>, <tt>mkdirp2</tt>, <tt>mkntemp</tt>, <tt>qsortr</tt>, <tt>env_dump4</tt> </li>
+<tt>atomic_symlink4</tt>, <tt>mkdirp2</tt>, <tt>mkntemp</tt>, <tt>qsortr</tt>,
+<tt>env_dump4</tt>, <tt>socket_tcpdelay</tt> </li>
</ul>
<h2> in 2.14.4.0 </h2>
diff --git a/package/deps.mak b/package/deps.mak
index 420fb67..dbf3401 100644
--- a/package/deps.mak
+++ b/package/deps.mak
@@ -570,6 +570,7 @@ src/libstddjb/socket_send4.o src/libstddjb/socket_send4.lo: src/libstddjb/socket
src/libstddjb/socket_send6.o src/libstddjb/socket_send6.lo: src/libstddjb/socket_send6.c src/include/skalibs/ip46.h src/include/skalibs/nonposix.h src/include/skalibs/socket.h src/include/skalibs/uint16.h
src/libstddjb/socket_tcp4.o src/libstddjb/socket_tcp4.lo: src/libstddjb/socket_tcp4.c src/include/skalibs/nonposix.h src/include/skalibs/socket.h
src/libstddjb/socket_tcp6.o src/libstddjb/socket_tcp6.lo: src/libstddjb/socket_tcp6.c src/include/skalibs/djbunix.h src/include/skalibs/ip46.h src/include/skalibs/nonposix.h src/include/skalibs/socket.h
+src/libstddjb/socket_tcpdelay.o src/libstddjb/socket_tcpdelay.lo: src/libstddjb/socket_tcpdelay.c src/include/skalibs/nonposix.h src/include/skalibs/socket.h
src/libstddjb/socket_tcpnodelay.o src/libstddjb/socket_tcpnodelay.lo: src/libstddjb/socket_tcpnodelay.c src/include/skalibs/nonposix.h src/include/skalibs/socket.h
src/libstddjb/socket_timeoutconn.o src/libstddjb/socket_timeoutconn.lo: src/libstddjb/socket_timeoutconn.c src/include/skalibs/socket.h src/include/skalibs/tai.h
src/libstddjb/socket_tryreservein.o src/libstddjb/socket_tryreservein.lo: src/libstddjb/socket_tryreservein.c src/include/skalibs/nonposix.h src/include/skalibs/socket.h
diff --git a/src/include/skalibs/socket.h b/src/include/skalibs/socket.h
index f13b2ee..944fdd0 100644
--- a/src/include/skalibs/socket.h
+++ b/src/include/skalibs/socket.h
@@ -156,6 +156,7 @@ extern int socket_remote6 (int, char *, uint16_t *) ;
extern int socket_ipoptionskill (int) ;
extern int socket_tcpnodelay (int) ;
+extern int socket_tcpdelay (int) ;
extern void socket_tryreservein (int, unsigned int) ;
diff --git a/src/libstddjb/socket_tcpdelay.c b/src/libstddjb/socket_tcpdelay.c
new file mode 100644
index 0000000..8f1c026
--- /dev/null
+++ b/src/libstddjb/socket_tcpdelay.c
@@ -0,0 +1,15 @@
+/* ISC license. */
+
+#include <skalibs/nonposix.h>
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+
+#include <skalibs/socket.h>
+
+int socket_tcpdelay (int s)
+{
+ static int const val = 0 ;
+ return setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &val, sizeof(int)) ;
+}
diff --git a/src/libstddjb/socket_tcpnodelay.c b/src/libstddjb/socket_tcpnodelay.c
index 5ea10b0..8880af4 100644
--- a/src/libstddjb/socket_tcpnodelay.c
+++ b/src/libstddjb/socket_tcpnodelay.c
@@ -10,6 +10,6 @@
int socket_tcpnodelay (int s)
{
- static int const opt = TCP_NODELAY ;
- return setsockopt(s, IPPROTO_TCP, 1, &opt, sizeof(int)) ;
+ static int const val = 1 ;
+ return setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &val, sizeof(int)) ;
}