1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00
Commit Graph

3054 Commits

Author SHA1 Message Date
Jacob Nevins
98c0039a83 Attempt to clarify what the various IP version selection options do.
[originally from svn r7882]
2008-02-23 23:56:22 +00:00
Jacob Nevins
d6fdbfbd2f Tunnels: more explicit link from introductory to reference section.
[originally from svn r7880]
2008-02-23 22:00:48 +00:00
Simon Tatham
5e42fe8fc9 Aha, _that's_ why I've been periodically getting blocking-write
problems using Unix PuTTY port forwarding. Sockets we create by
connect() are immediately set into nonblocking mode by fcntl, but
sockets we create by accept() were not. This trivial fix should help.

[originally from svn r7864]
2008-02-21 09:18:24 +00:00
Jacob Nevins
c639a04a1f Update web-SVN URL for kh2reg.py.
[originally from svn r7843]
2008-02-10 14:00:51 +00:00
Jacob Nevins
d08f057f47 Typo in winadj@ name.
[originally from svn r7834]
2008-01-09 19:59:16 +00:00
Simon Tatham
c47a0a1f4e Make the text about our interest in new mirror sites significantly
less fluffy and welcoming.

[originally from svn r7824]
2007-12-20 11:03:45 +00:00
Simon Tatham
9024621b91 r7804 neglected to add a help context #define to winhelp.h.
[originally from svn r7815]
[r7804 == 1940b37ff0]
2007-12-15 10:41:40 +00:00
Ben Harris
b2b89061d3 Document maxpkt bug under garbled packet error message.
[originally from svn r7806]
2007-12-05 00:28:22 +00:00
Ben Harris
1940b37ff0 Add a new bug-compatibility mode that limits the window size we'll
advertise so that the server can't exceed our maximum packet size.
Enable it for "1.36_sshlib GlobalSCAPE" which apparently sends oversize
packets otherwise.

[originally from svn r7804]
2007-12-05 00:02:06 +00:00
Simon Tatham
020c481dd4 Duplicate r7795 in uxnet.c.
[originally from svn r7796]
[r7795 == 712b4689c8]
2007-11-28 20:45:50 +00:00
Simon Tatham
712b4689c8 sktree is indexed on the numeric value of the socket structure's
underlying WinSock SOCKET. Therefore, if we plan to modify the
SOCKET in a socket, we must remove it from the tree before doing so,
and put it back again afterwards. Otherwise it'll violate the tree's
sorting order, and sooner or later someone will try to find it and
get back NULL.

[originally from svn r7795]
2007-11-26 21:09:54 +00:00
Jacob Nevins
868208b8bd Reset mouse reporting mode as part of resetting the terminal.
[originally from svn r7773]
2007-10-27 16:05:02 +00:00
Jacob Nevins
439b72d947 Marc TERRIER pointed out a couple of places that claim there is an X11
forwarding checkbox on the Tunnels panel, which hasn't been the case for
a while.

[originally from svn r7771]
2007-10-19 21:47:47 +00:00
Ben Harris
ca2b97f1d0 Replace mentions of SSH-2 I-Ds with references to the corresponding RFCs.
[originally from svn r7759]
2007-10-03 21:21:18 +00:00
Ben Harris
f8e7894e15 snew() always returns non-NULL, so checking if its return value is NULL
is pointless.

[originally from svn r7758]
2007-10-03 21:06:00 +00:00
Ben Harris
4a9feea43d Factor out the increasingly complicated SSH-2 channel structure initialisation
into its own function.  Maintaining four copies was getting boring.

[originally from svn r7757]
2007-10-03 21:04:26 +00:00
Ben Harris
3c149087e4 Take the code that does flow control in SSH-1, and make it work in SSH-2
as well.  This won't be triggered in the usual case, but it's useful
if the remote end ignores our window, or if we're in "simple" mode and
setting the window far larger than is necessary.

[originally from svn r7756]
2007-10-03 20:29:27 +00:00
Ben Harris
ea9a3bdb7d More fixes to stdout and stderr. When the backlog on either clears, call
the backend's unthrottle function.  If we don't, we'll deadlock.  While
we're here, also pump as much data as possible out during each call to
try_output(), rather than restricting ourselves to a single call to
write().

[originally from svn r7755]
2007-10-02 21:43:53 +00:00
Ben Harris
241c53acea As far as I can see (at least in NetBSD) O_NONBLOCK and FIONBIO are equivalent,
except that O_NONBLOCK is standardised and FIONBIO isn't.  In consequence,
replace our only use of FIONBIO with O_NONBLOCK.

Inspired by Jonathan H N Chin, who had problems with this on Solaris.

[originally from svn r7753]
2007-10-02 21:07:52 +00:00
Ben Harris
2db59b7443 Rather than rejecting spurious SSH_MSG_CHANNEL_SUCCESSes, and ignoring
spurious SSH_MSG_CHANNEL_FAILUREs, treat them as the protocol errors
they are and forcibly disconnect.  Inspired by recent traffic on
comp.security.ssh.

[originally from svn r7752]
2007-10-01 21:11:11 +00:00
Ben Harris
da5d553afc Merge the looking up of channel numbers for SSH-2 channel messages into
a single function which also handles checking that channels exist and
are properly open.  This should make PuTTY a little less tolerant of
servers that send bogus messages.

[originally from svn r7751]
2007-09-30 19:42:31 +00:00
Ben Harris
ef370ee6fa Set cfg.ssh_simple if there are no forwardings.
[originally from svn r7750]
2007-09-30 14:14:29 +00:00
Ben Harris
c5996bcde5 When writing session data to stdout or stderr, switch the relevant file
descriptor into non-blocking mode temporarily, and correctly handle returns
of EAGAIN from write().  This should fix unix-plink-stdout-nonblock, while
avoiding EAGAIN turning up where we aren't expecting it.

[originally from svn r7748]
2007-09-30 12:45:49 +00:00
Ben Harris
17bc691cc2 Now that PuTTY is actually using names "@putty.projects.tartarus.org", it
seems like a good idea to document them.

[originally from svn r7747]
2007-09-29 14:20:55 +00:00
Ben Harris
faa6e26d38 Add support for resetting the terminal modes on stderr to something sensible
before printing error messages to it.  This should fix the stair-stepping
in Plink's progress messages.

[originally from svn r7745]
2007-09-29 12:27:45 +00:00
Ben Harris
38ee5fc58d My changes in r7738 (O_NONBLOCK for Unix Plink) were half-arsed, and
completely broke interactive logins.  The problem, or at least one of the
problems, was that in interactive use stdin, stdout, and stderr tend to be
the same file, so setting O_NONBLOCK on the latter two also sets it on the
former.  Thus, we need to cope with all of them being non-blocking.

[originally from svn r7742]
[r7738 == d0db31a1ca]
2007-09-24 21:43:48 +00:00
Ben Harris
57c3ac7f14 Manifest constants are good. Introduce plink to STD{IN,OUT,ERR}_FILENO,
TRUE, and FALSE.

[originally from svn r7741]
2007-09-24 21:31:45 +00:00
Ben Harris
d0db31a1ca stdout and stderr should be made O_NONBLOCK so that we don't end up blocking
the entire process because stdout is busy.

Arguably, this shouldn't apply to stderr when we're printing our own error
messages to it, but I'll leave that fix for another time.

[originally from svn r7738]
2007-09-24 19:26:08 +00:00
Ben Harris
22f9618deb Add support for automatically tuning the SSH-2 window size for decent
performance.  The theory behind this is fairly simple, though the
implementation turns out to be a little trickier than it looks.

The basic idea is that when the connection isn't being limited by our ability
to process data, we want to ensure that the window size _as seen by the server_
never drops to zero.  Measuring the server's view of the window size is done
by arranging for it to acknowledge every SSH_MSG_CHANNEL_WINDOW_ADJUST, or 
rather an SSH_MSG_CHANNEL_REQUEST sent just before it.  That way we can tell
when it its outgoing data stream it received the window adjustment, and
thus how small the server's view of the window got.

At present, we only ever increase the window size.  In theory, we could
arrange to reduce it again if the server's view of it seemed to be persistently
too large, but my experiments suggest that getting this right will be tricky.

[originally from svn r7735]
2007-09-24 15:18:11 +00:00
Ben Harris
187d481d73 Document "No supported authentication methods available", and make it clear
that TIS/CryptoCard auth can be used for simple passwords too.

[originally from svn r7730]
2007-09-22 13:55:25 +00:00
Simon Tatham
9acc508c4e Harvey Kwok observes that EnumPrinters() can sometimes fail to fill
in its output parameters. Hence, we initialise them before calling
it.

[originally from svn r7729]
2007-09-21 18:04:08 +00:00
Ben Harris
1854dcd388 Don't try SSH-1 RSA authentication unless the server has advertised support
for it.  It's possible that this obsoletes BUG_CHOKES_ON_RSA.  Certainly
the one SSH-1.5-Cisco-1.25 server I found was correctly not advertising RSA
auth.  For now, leave it in, because I'm not feeling entirely confident.

[originally from svn r7726]
2007-09-20 21:33:21 +00:00
Ben Harris
1e8a5e4796 In SSH-1, don't attempt password authentication unless the server has
announced support for it.  Instead exit with a fatal error (since password
auth is our last resort).

[originally from svn r7724]
2007-09-20 21:07:24 +00:00
Ben Harris
2323cb947e Avoid "unused variable" warning when NO_IPV6 defined.
[originally from svn r7710]
2007-09-03 20:52:56 +00:00
Ben Harris
54321544d4 Suggest another ttymode we could usefully set automatically.
[originally from svn r7709]
2007-09-03 20:33:40 +00:00
Simon Tatham
4b178be3e9 ssh->mainchan can be NULL; try not to segfault in that situation.
[originally from svn r7705]
2007-09-03 19:09:56 +00:00
Ben Harris
be8818b4bc Correctly terminate nc target hostname when copying it.
While we're here, use memcpy rather than strncpy when we've already worked
out how much we're going to copy.

[originally from svn r7685]
2007-08-07 22:02:03 +00:00
Ben Harris
ac041a3d66 Use "int" rather than "unsigned" as the argument to ssh2_set_window, not
because it can ever be negative, but because we'll be comparing it with
another int.  This way, C's promotion rules don't bite us and we should
stand slightly more chance of coping with broken servers that overrun our
window.

[originally from svn r7683]
2007-08-06 20:56:52 +00:00
Ben Harris
dd10ff5864 May as well reference an RFC rather than an Internet Draft where we can.
[originally from svn r7682]
2007-08-05 22:18:59 +00:00
Ben Harris
16cbd4f260 Small window-handling tweaks. Set the default big window to 0x7fffffff bytes,
and tweak ssh2_set_window() so it can cope with that.  Also arrange to send
a private channel message in simple mode to tell the server that it can safely
use a large window too.

[originally from svn r7679]
2007-08-05 14:18:43 +00:00
Ben Harris
486771ec4a Remember to clear ssh_simple when initialising config.
[originally from svn r7674]
2007-08-04 22:19:12 +00:00
Ben Harris
a3ea90c0e8 In the file-transfer applications, which only ever use the main
channel, arrange to set the SSH-2 window size to something very
large.  This prevents the connection stalling when the window fills
up, and means that PSCP receives data _much_ faster.

[originally from svn r7672]
2007-08-04 22:14:19 +00:00
Ben Harris
8659f5145f "CR implies LF" patch, based on one from Paul Coldrey.
[originally from svn r7669]
2007-08-04 19:16:46 +00:00
Ben Harris
3dc0f8507d Tweak window handling so that we send a window adjust if the window is half
used up, rather than over half.  That this increases the throughput of PSCP
by 50% indicates just how broken our window handling is.

[originally from svn r7667]
2007-08-04 16:04:08 +00:00
Ben Harris
7cda30ac1a When omitting session data from logs, don't omit the length of the session
data string.  This isn't strictly necessary, but it makes the logs easier to
use.

[originally from svn r7666]
2007-08-04 15:48:52 +00:00
Ben Harris
f48e3eb16b Tweak to window handling: Keep the local window in a signed integer, and
arrange to handle usefully the case where the server sends us more data
than it's allowed to.  There's no danger of overflow, since the maximum is
OUR_V2_WINSIZE and the minimum is -OUR_V2_MAXPKT (at least if the server is
nice).

[originally from svn r7661]
2007-08-04 14:32:06 +00:00
Ben Harris
6d2c196708 Don't throw away data that we receive before we're ready for it. Just save
it up for later.  This should prevent hangs when talking to particularly
enthusiastic servers.

Thanks to JCA for tracking this bug down.

[originally from svn r7651]
2007-07-29 14:02:00 +00:00
Jacob Nevins
ac6b5c8bd5 Note lack of proxy auto-detection.
[originally from svn r7648]
2007-07-22 14:34:27 +00:00
Ben Harris
77da96c62f Split pkt_ctx into a separate enumeration for each of kex and userauth
instead of a bitfield for both.  This doesn't gain much here, but it should
make it easier to make things other than logging use the context.

[originally from svn r7647]
2007-07-21 21:39:36 +00:00
Ben Harris
c1459927df Arrange that log_packet() isn't called for raw data logging if logctx is null.
This allows us to send data in ssh_init(), albeit at the expense of its not
being properly logged, so arrange to send the version string then if that's
sensible, which should reduce the number of round-trips required to bring
up an SSH-2 connection.

[originally from svn r7646]
2007-07-21 13:43:57 +00:00