- stevesk@cvs.openbsd.org 2002/02/24 19:59:42
[channels.c misc.c] disable Nagle in connect_to() and channel_post_port_listener() (port forwarding endpoints). the intention is to preserve the on-the-wire appearance to applications at either end; the applications can then enable TCP_NODELAY according to their requirements. ok markus@
This commit is contained in:
parent
90fd814f90
commit
1ebd7a5342
|
@ -42,6 +42,12 @@
|
||||||
[auth2.c authfd.c authfd.h authfile.c kexdh.c kexgex.c key.c key.h
|
[auth2.c authfd.c authfd.h authfile.c kexdh.c kexgex.c key.c key.h
|
||||||
ssh-dss.c ssh-dss.h ssh-keygen.c ssh-rsa.c ssh-rsa.h sshconnect2.c]
|
ssh-dss.c ssh-dss.h ssh-keygen.c ssh-rsa.c ssh-rsa.h sshconnect2.c]
|
||||||
signed vs. unsigned: make size arguments u_int, ok stevesk@
|
signed vs. unsigned: make size arguments u_int, ok stevesk@
|
||||||
|
- stevesk@cvs.openbsd.org 2002/02/24 19:59:42
|
||||||
|
[channels.c misc.c]
|
||||||
|
disable Nagle in connect_to() and channel_post_port_listener() (port
|
||||||
|
forwarding endpoints). the intention is to preserve the on-the-wire
|
||||||
|
appearance to applications at either end; the applications can then
|
||||||
|
enable TCP_NODELAY according to their requirements. ok markus@
|
||||||
|
|
||||||
20020225
|
20020225
|
||||||
- (bal) Last AIX patch. Moved aix_usrinfo() outside of do_setuserconext()
|
- (bal) Last AIX patch. Moved aix_usrinfo() outside of do_setuserconext()
|
||||||
|
@ -7715,4 +7721,4 @@
|
||||||
- Wrote replacements for strlcpy and mkdtemp
|
- Wrote replacements for strlcpy and mkdtemp
|
||||||
- Released 1.0pre1
|
- Released 1.0pre1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.1885 2002/02/26 18:09:42 mouring Exp $
|
$Id: ChangeLog,v 1.1886 2002/02/26 18:12:51 mouring Exp $
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: channels.c,v 1.168 2002/02/14 23:27:59 markus Exp $");
|
RCSID("$OpenBSD: channels.c,v 1.169 2002/02/24 19:59:42 stevesk Exp $");
|
||||||
|
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
#include "ssh1.h"
|
#include "ssh1.h"
|
||||||
|
@ -1116,6 +1116,7 @@ channel_post_port_listener(Channel *c, fd_set * readset, fd_set * writeset)
|
||||||
error("accept: %.100s", strerror(errno));
|
error("accept: %.100s", strerror(errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
set_nodelay(newsock);
|
||||||
nc = channel_new(rtype,
|
nc = channel_new(rtype,
|
||||||
nextstate, newsock, newsock, -1,
|
nextstate, newsock, newsock, -1,
|
||||||
c->local_window_max, c->local_maxpacket,
|
c->local_window_max, c->local_maxpacket,
|
||||||
|
@ -2270,6 +2271,7 @@ connect_to(const char *host, u_short port)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
/* success */
|
/* success */
|
||||||
|
set_nodelay(sock);
|
||||||
return sock;
|
return sock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
18
misc.c
18
misc.c
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: misc.c,v 1.15 2002/01/24 21:09:25 stevesk Exp $ */
|
/* $OpenBSD: misc.c,v 1.16 2002/02/24 19:59:42 stevesk Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000 Markus Friedl. All rights reserved.
|
* Copyright (c) 2000 Markus Friedl. All rights reserved.
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: misc.c,v 1.15 2002/01/24 21:09:25 stevesk Exp $");
|
RCSID("$OpenBSD: misc.c,v 1.16 2002/02/24 19:59:42 stevesk Exp $");
|
||||||
|
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
@ -96,10 +96,20 @@ unset_nonblock(int fd)
|
||||||
void
|
void
|
||||||
set_nodelay(int fd)
|
set_nodelay(int fd)
|
||||||
{
|
{
|
||||||
int on = 1;
|
int opt, optlen;
|
||||||
|
|
||||||
|
optlen = sizeof opt;
|
||||||
|
if (getsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &opt, &optlen) == -1) {
|
||||||
|
error("getsockopt TCP_NODELAY: %.100s", strerror(errno));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (opt == 1) {
|
||||||
|
debug2("fd %d is TCP_NODELAY", fd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
opt = 1;
|
||||||
debug("fd %d setting TCP_NODELAY", fd);
|
debug("fd %d setting TCP_NODELAY", fd);
|
||||||
if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) == -1)
|
if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &opt, sizeof opt) == -1)
|
||||||
error("setsockopt TCP_NODELAY: %.100s", strerror(errno));
|
error("setsockopt TCP_NODELAY: %.100s", strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue