From b349b77b7faaffaba012992deb362ca2677afa03 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Tue, 17 Aug 1999 15:24:41 +0000 Subject: Performance fix for ssh X11 forwarding: turn on TCP_NODELAY on local stub connections on client and server side. (it was correctly being enabled over the long-haul connection, but somehow it got missed on the loopback connections to the real X client and server) This makes x2x over ssh actually pleasant to use. --- security/ssh/files/patch-sum | 6 ++---- security/ssh/patches/patch-aq | 41 +++++++++++++++++++++++++++++++++++------ 2 files changed, 37 insertions(+), 10 deletions(-) (limited to 'security') diff --git a/security/ssh/files/patch-sum b/security/ssh/files/patch-sum index ea26bdf9309..08afec890b4 100644 --- a/security/ssh/files/patch-sum +++ b/security/ssh/files/patch-sum @@ -1,4 +1,4 @@ -$NetBSD: patch-sum,v 1.3 1999/07/17 03:41:06 jlam Exp $ +$NetBSD: patch-sum,v 1.4 1999/08/17 15:24:41 sommerfeld Exp $ MD5 (patch-aa) = dca3a23f5066125131e34fba33baa4ae MD5 (patch-ab) = 712a7ffc9d2686153df92e32ce6b43bb @@ -12,8 +12,6 @@ MD5 (patch-am) = fd4e766e57c58645714fdab8ed55da5d MD5 (patch-an) = 135b09a36c66aaf25a476dcb659efcf7 MD5 (patch-ao) = 98e2eb418ee7f5ad544c32c7d5569ea2 MD5 (patch-ap) = 99049fb6deb9bab8950723b7430a89a4 -MD5 (patch-aq) = fed44f408b8f42c808af1f896308d07d +MD5 (patch-aq) = b0a282a2efb91234aeddca67351f95a4 MD5 (patch-au) = aabad95304cea849e30389ad00e6d243 MD5 (patch-av) = b3f9909bd6a5cc387e929d16f89884c0 -MD5 (patch-ba) = fa984b71e26f7a9b32f9c1e38baaaa36 -MD5 (patch-bb) = bfcd6c515d2ab62c510bed6afceeedee diff --git a/security/ssh/patches/patch-aq b/security/ssh/patches/patch-aq index 1de53ceb568..0988e21039c 100644 --- a/security/ssh/patches/patch-aq +++ b/security/ssh/patches/patch-aq @@ -1,7 +1,7 @@ -$NetBSD: patch-aq,v 1.2 1999/05/26 15:35:43 tv Exp $ +$NetBSD: patch-aq,v 1.3 1999/08/17 15:24:42 sommerfeld Exp $ ---- newchannels.c.orig Wed May 12 13:19:27 1999 -+++ newchannels.c Sat May 15 04:31:04 1999 +--- newchannels.c.orig Wed May 12 07:19:27 1999 ++++ newchannels.c Tue Aug 17 10:49:25 1999 @@ -274,7 +274,7 @@ #include "authfd.h" #include "emulate.h" @@ -11,7 +11,20 @@ $NetBSD: patch-aq,v 1.2 1999/05/26 15:35:43 tv Exp $ #include #include #ifdef NEED_SYS_SYSLOG_H -@@ -934,7 +934,7 @@ +@@ -922,6 +922,7 @@ + /* This is our fake X11 server socket. */ + if (FD_ISSET(ch->sock, readset)) + { ++ int on = 1; + debug("X11 connection requested."); + addrlen = sizeof(addr); + newsock = accept(ch->sock, &addr, &addrlen); +@@ -930,11 +931,12 @@ + error("accept: %.100s", strerror(errno)); + break; + } ++ setsockopt(newsock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); + remote_hostname = get_remote_hostname(newsock); snprintf(buf, sizeof(buf), "X11 connection from %.200s port %d", remote_hostname, get_peer_port(newsock)); xfree(remote_hostname); @@ -20,7 +33,7 @@ $NetBSD: patch-aq,v 1.2 1999/05/26 15:35:43 tv Exp $ { struct request_info req; struct servent *serv; -@@ -986,7 +986,7 @@ +@@ -986,7 +988,7 @@ ch->listening_port, remote_hostname, get_peer_port(newsock)); xfree(remote_hostname); @@ -29,7 +42,23 @@ $NetBSD: patch-aq,v 1.2 1999/05/26 15:35:43 tv Exp $ { struct request_info req; struct servent *serv; -@@ -2412,6 +2412,10 @@ +@@ -1919,6 +1921,7 @@ + struct sockaddr_in sin; + char buf[255], *cp, *remote_host; + struct hostent *hp; ++ int on = 1; + + /* Get remote channel number. */ + remote_channel = packet_get_int(); +@@ -2110,6 +2113,7 @@ + + success: + /* We have successfully obtained a connection to the real X display. */ ++ setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); + + #if defined(O_NONBLOCK) && !defined(O_NONBLOCK_BROKEN) + (void)fcntl(sock, F_SETFL, O_NONBLOCK); +@@ -2412,6 +2416,10 @@ ssh-agent connections on your system */ old_umask = umask(S_IRUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); -- cgit v1.2.3