aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
authorEric Marsden2024-12-11 16:59:45 +0100
committerRobert Pluim2024-12-13 14:12:39 +0100
commitc265febd97e940e6580ae42aa648358a0a2ed830 (patch)
treeac196e4708f07102b87138e237bc0f5a4fb4fd9c /src/process.c
parent989cdb2c35889476702e4d2bd82d8195fa2e7ec0 (diff)
downloademacs-c265febd97e940e6580ae42aa648358a0a2ed830.tar.gz
emacs-c265febd97e940e6580ae42aa648358a0a2ed830.zip
Add support for TCP_NODELAY on network streams
* src/process.c (socket_options): add entry for TCP_NODELAY. * lisp/emacs-lisp/bytecomp.el: add :nodelay to valid keywords for make-network-process compiler-macro. * doc/lispref/processes.texi: document :nodelay keyword argument to set-network-process-option and make-network-process. (Bug#74793)
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/process.c b/src/process.c
index b71ba3daf2d..cd1378f07ad 100644
--- a/src/process.c
+++ b/src/process.c
@@ -38,6 +38,7 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
38#include <sys/socket.h> 38#include <sys/socket.h>
39#include <netdb.h> 39#include <netdb.h>
40#include <netinet/in.h> 40#include <netinet/in.h>
41#include <netinet/tcp.h>
41#include <arpa/inet.h> 42#include <arpa/inet.h>
42 43
43#else 44#else
@@ -2861,6 +2862,9 @@ static const struct socket_options {
2861#ifdef SO_REUSEADDR 2862#ifdef SO_REUSEADDR
2862 { ":reuseaddr", SOL_SOCKET, SO_REUSEADDR, SOPT_BOOL, OPIX_REUSEADDR }, 2863 { ":reuseaddr", SOL_SOCKET, SO_REUSEADDR, SOPT_BOOL, OPIX_REUSEADDR },
2863#endif 2864#endif
2865#ifdef TCP_NODELAY
2866 { ":nodelay", IPPROTO_TCP, TCP_NODELAY, SOPT_BOOL, OPIX_MISC },
2867#endif
2864 { 0, 0, 0, SOPT_UNKNOWN, OPIX_NONE } 2868 { 0, 0, 0, SOPT_UNKNOWN, OPIX_NONE }
2865 }; 2869 };
2866 2870
@@ -3899,6 +3903,7 @@ The following network options can be specified for this connection:
3899:broadcast BOOL -- Allow send and receive of datagram broadcasts. 3903:broadcast BOOL -- Allow send and receive of datagram broadcasts.
3900:dontroute BOOL -- Only send to directly connected hosts. 3904:dontroute BOOL -- Only send to directly connected hosts.
3901:keepalive BOOL -- Send keep-alive messages on network stream. 3905:keepalive BOOL -- Send keep-alive messages on network stream.
3906:nodelay BOOL -- Set TCP_NODELAY on the network socket.
3902:linger BOOL or TIMEOUT -- Send queued messages before closing. 3907:linger BOOL or TIMEOUT -- Send queued messages before closing.
3903:oobinline BOOL -- Place out-of-band data in receive data stream. 3908:oobinline BOOL -- Place out-of-band data in receive data stream.
3904:priority INT -- Set protocol defined priority for sent packets. 3909:priority INT -- Set protocol defined priority for sent packets.