res_audiosocket.c: Set the TCP_NODELAY socket option

Disable Nagle's algorithm by setting the TCP_NODELAY socket option.
This reduces latency by preventing delays caused by packet buffering.

(cherry picked from commit c0e8f4f63b)
This commit is contained in:
Sven Kube
2025-05-13 15:37:38 +02:00
committed by George Joseph
parent 6a5981307b
commit 0c9f0cddbf

View File

@@ -140,6 +140,14 @@ const int ast_audiosocket_connect(const char *server, struct ast_channel *chan)
continue; continue;
} }
/*
* Disable Nagle's algorithm by setting the TCP_NODELAY socket option.
* This reduces latency by preventing delays caused by packet buffering.
*/
if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &(int){1}, sizeof(int)) < 0) {
ast_log(LOG_ERROR, "Failed to set TCP_NODELAY on AudioSocket: %s\n", strerror(errno));
}
if (ast_connect(s, &addrs[i]) && errno == EINPROGRESS) { if (ast_connect(s, &addrs[i]) && errno == EINPROGRESS) {
if (handle_audiosocket_connection(server, addrs[i], s)) { if (handle_audiosocket_connection(server, addrs[i], s)) {