diff options
| author | Eric Marsden | 2024-12-11 16:59:45 +0100 |
|---|---|---|
| committer | Robert Pluim | 2024-12-13 14:12:39 +0100 |
| commit | c265febd97e940e6580ae42aa648358a0a2ed830 (patch) | |
| tree | ac196e4708f07102b87138e237bc0f5a4fb4fd9c /src/process.c | |
| parent | 989cdb2c35889476702e4d2bd82d8195fa2e7ec0 (diff) | |
| download | emacs-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.c | 5 |
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. |