- stevesk@cvs.openbsd.org 2001/12/06 18:20:32
     [channels.c]
     disable nagle for X11 fake server and client TCPs.  from netbsd.
     ok markus@
diff --git a/channels.c b/channels.c
index 3fe619f..694b7cc 100644
--- a/channels.c
+++ b/channels.c
@@ -39,7 +39,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: channels.c,v 1.145 2001/12/06 18:09:23 stevesk Exp $");
+RCSID("$OpenBSD: channels.c,v 1.146 2001/12/06 18:20:32 stevesk Exp $");
 
 #include "ssh.h"
 #include "ssh1.h"
@@ -993,7 +993,7 @@
 {
 	Channel *nc;
 	struct sockaddr addr;
-	int newsock;
+	int newsock, on = 1;
 	socklen_t addrlen;
 	char buf[16384], *remote_ipaddr;
 	int remote_port;
@@ -1006,6 +1006,10 @@
 			error("accept: %.100s", strerror(errno));
 			return;
 		}
+		if (setsockopt(newsock, IPPROTO_TCP, TCP_NODELAY, &on,
+		    sizeof on) == -1)
+			error("setsockopt TCP_NODELAY: %.100s",
+			    strerror(errno));
 		remote_ipaddr = get_peer_ipaddr(newsock);
 		remote_port = get_peer_port(newsock);
 		snprintf(buf, sizeof buf, "X11 connection from %.200s port %d",
@@ -2567,7 +2571,7 @@
 int
 x11_connect_display(void)
 {
-	int display_number, sock = 0;
+	int display_number, sock = 0, on = 1;
 	const char *display;
 	char buf[1024], *cp;
 	struct addrinfo hints, *ai, *aitop;
@@ -2655,6 +2659,8 @@
 		    strerror(errno));
 		return -1;
 	}
+	if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) == -1)
+		error("setsockopt TCP_NODELAY: %.100s", strerror(errno));
 	return sock;
 }