- (djm) OpenBSD CVS Sync
   - stevesk@cvs.openbsd.org 2002/01/24 21:09:25
     [channels.c misc.c misc.h packet.c]
     add set_nodelay() to set TCP_NODELAY on a socket (prep for nagle tuning).
     no nagle changes just yet; ok djm@ markus@
diff --git a/ChangeLog b/ChangeLog
index 225fd09..b313696 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+20020205
+ - (djm) OpenBSD CVS Sync
+   - stevesk@cvs.openbsd.org 2002/01/24 21:09:25
+     [channels.c misc.c misc.h packet.c]
+     add set_nodelay() to set TCP_NODELAY on a socket (prep for nagle tuning).
+     no nagle changes just yet; ok djm@ markus@
+
+
 20020130
  - (djm) Delay PRNG seeding until we need it in ssh-keygen, from markus@
  - (tim) [configure.ac] fix logic on when ssh-rand-helper is installed.
@@ -7399,4 +7407,4 @@
  - Wrote replacements for strlcpy and mkdtemp
  - Released 1.0pre1
 
-$Id: ChangeLog,v 1.1798 2002/01/31 06:14:03 tim Exp $
+$Id: ChangeLog,v 1.1799 2002/02/05 00:52:13 djm Exp $
diff --git a/channels.c b/channels.c
index 73bc10a..2436e08 100644
--- a/channels.c
+++ b/channels.c
@@ -39,7 +39,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: channels.c,v 1.161 2002/01/21 23:27:10 markus Exp $");
+RCSID("$OpenBSD: channels.c,v 1.162 2002/01/24 21:09:25 stevesk Exp $");
 
 #include "ssh.h"
 #include "ssh1.h"
@@ -986,7 +986,7 @@
 {
 	Channel *nc;
 	struct sockaddr addr;
-	int newsock, on = 1;
+	int newsock;
 	socklen_t addrlen;
 	char buf[16384], *remote_ipaddr;
 	int remote_port;
@@ -1004,10 +1004,7 @@
 			error("accept: %.100s", strerror(errno));
 			return;
 		}
-		if (setsockopt(newsock, IPPROTO_TCP, TCP_NODELAY, &on,
-		    sizeof on) == -1)
-			error("setsockopt TCP_NODELAY: %.100s",
-			    strerror(errno));
+		set_nodelay(newsock);
 		remote_ipaddr = get_peer_ipaddr(newsock);
 		remote_port = get_peer_port(newsock);
 		snprintf(buf, sizeof buf, "X11 connection from %.200s port %d",
@@ -2495,7 +2492,7 @@
 int
 x11_connect_display(void)
 {
-	int display_number, sock = 0, on = 1;
+	int display_number, sock = 0;
 	const char *display;
 	char buf[1024], *cp;
 	struct addrinfo hints, *ai, *aitop;
@@ -2583,8 +2580,7 @@
 		    strerror(errno));
 		return -1;
 	}
-	if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) == -1)
-		error("setsockopt TCP_NODELAY: %.100s", strerror(errno));
+	set_nodelay(sock);
 	return sock;
 }
 
diff --git a/misc.c b/misc.c
index 04ea7a7..fbdf408 100644
--- a/misc.c
+++ b/misc.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: misc.c,v 1.14 2001/12/19 07:18:56 deraadt Exp $	*/
+/*	$OpenBSD: misc.c,v 1.15 2002/01/24 21:09:25 stevesk Exp $	*/
 
 /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
@@ -25,7 +25,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: misc.c,v 1.14 2001/12/19 07:18:56 deraadt Exp $");
+RCSID("$OpenBSD: misc.c,v 1.15 2002/01/24 21:09:25 stevesk Exp $");
 
 #include "misc.h"
 #include "log.h"
@@ -92,6 +92,17 @@
 			    fd, strerror(errno));
 }
 
+/* disable nagle on socket */
+void
+set_nodelay(int fd)
+{
+	int on = 1;
+
+	debug("fd %d setting TCP_NODELAY", fd);
+	if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) == -1)
+		error("setsockopt TCP_NODELAY: %.100s", strerror(errno));
+}
+
 /* Characters considered whitespace in strsep calls. */
 #define WHITESPACE " \t\r\n"
 
diff --git a/misc.h b/misc.h
index fc56452..668fd60 100644
--- a/misc.h
+++ b/misc.h
@@ -1,4 +1,4 @@
-/*	$OpenBSD: misc.h,v 1.10 2001/06/26 17:27:24 markus Exp $	*/
+/*	$OpenBSD: misc.h,v 1.11 2002/01/24 21:09:25 stevesk Exp $	*/
 
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -16,6 +16,7 @@
 char	*strdelim(char **);
 void	 set_nonblock(int);
 void	 unset_nonblock(int);
+void	 set_nodelay(int);
 int	 a2port(const char *);
 char	*cleanhostname(char *);
 char	*colon(char *);
diff --git a/packet.c b/packet.c
index 960675a..3a498f6 100644
--- a/packet.c
+++ b/packet.c
@@ -37,7 +37,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: packet.c,v 1.85 2002/01/18 18:14:17 stevesk Exp $");
+RCSID("$OpenBSD: packet.c,v 1.86 2002/01/24 21:09:25 stevesk Exp $");
 
 #include "xmalloc.h"
 #include "buffer.h"
@@ -1191,7 +1191,6 @@
 	int lowdelay = IPTOS_LOWDELAY;
 	int throughput = IPTOS_THROUGHPUT;
 #endif
-	int on = 1;
 
 	if (called)
 		return;
@@ -1219,9 +1218,7 @@
 				    strerror(errno));
 		}
 #endif
-		if (setsockopt(connection_in, IPPROTO_TCP, TCP_NODELAY, (void *) &on,
-		    sizeof(on)) < 0)
-			error("setsockopt TCP_NODELAY: %.100s", strerror(errno));
+		set_nodelay(connection_in);
 	} else if (packet_connection_is_ipv4()) {
 		/*
 		 * Set IP options for a non-interactive connection.  Use