Enable TCP_NODELAY
This commit is contained in:
parent
71f3532e04
commit
36c59ff375
1
common.c
1
common.c
|
@ -33,6 +33,7 @@
|
|||
#include <setjmp.h>
|
||||
#include <inttypes.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
/// Shorthand to set an error and return failure from the function
|
||||
#define FAIL(...) \
|
||||
|
|
|
@ -4732,6 +4732,12 @@ irc_finish_connection (struct server *s, int socket)
|
|||
{
|
||||
struct app_context *ctx = s->ctx;
|
||||
|
||||
// Most of our output comes from the user one full command at a time and we
|
||||
// use output buffering, so it makes a lot of sense to avoid these delays
|
||||
int yes = 1;
|
||||
soft_assert (setsockopt (socket, IPPROTO_TCP, TCP_NODELAY,
|
||||
&yes, sizeof yes) != -1);
|
||||
|
||||
set_blocking (socket, false);
|
||||
s->socket = socket;
|
||||
s->transport = get_config_boolean (s->config, "tls")
|
||||
|
|
7
kike.c
7
kike.c
|
@ -3421,6 +3421,13 @@ irc_try_fetch_client (struct server_context *ctx, int listen_fd)
|
|||
c->ping_timer.dispatcher = on_client_ping_timer;
|
||||
c->ping_timer.user_data = c;
|
||||
|
||||
// A little bit questionable once the traffic gets high enough (IMO),
|
||||
// but it reduces silly latencies that we don't need because we already
|
||||
// do buffer our output
|
||||
int yes = 1;
|
||||
soft_assert (setsockopt (fd, IPPROTO_TCP, TCP_NODELAY,
|
||||
&yes, sizeof yes) != -1);
|
||||
|
||||
set_blocking (fd, false);
|
||||
client_update_poller (c, NULL);
|
||||
client_set_kill_timer (c);
|
||||
|
|
Loading…
Reference in New Issue