Kerberos‚Ö£ part of the TCP_NODELAY patch
authormirabilos <m@mirbsd.org>
Tue, 8 Nov 2016 23:22:19 +0000 (00:22 +0100)
committermirabilos <m@mirbsd.org>
Tue, 8 Nov 2016 23:22:19 +0000 (00:22 +0100)
src/kerberos4-client.c

index 168d791..b832eee 100644 (file)
@@ -17,6 +17,8 @@
 #include "buffer.h"
 #include "socket-client.h"
 
+#include <netinet/tcp.h>
+
 #   include <krb.h>
 
 extern char *krb_realmofhost ();
@@ -48,6 +50,16 @@ start_kerberos4_server (cvsroot_t *root, struct buffer **to_server_p,
     if (s < 0)
        error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO));
 
+#ifdef TCP_NODELAY
+    /* Avoid latency due to Nagle algorithm.  */
+    {
+       int on = 1;
+
+       if (setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) < 0)
+           error (0, errno, "warning: cannot set TCP_NODELAY on socket");
+    }
+#endif
+
     port = get_cvs_port_number (root);
 
     hp = init_sockaddr (&sin, root->hostname, port);