Simon Tatham [Wed, 13 Oct 2004 12:29:50 +0000 (12:29 +0000)]
I think we've been told before that you're not supposed to
CloseHandle() the thing returned from MonitorFromPoint. Certainly MS
Visual Studio's debugger complained about it just now. CloseHandle()
call removed.
Simon Tatham [Wed, 13 Oct 2004 11:50:16 +0000 (11:50 +0000)]
Re-engineering of terminal emulator, phase 1.
The active terminal screen is no longer an array of `unsigned long'
encoding 16-bit Unicode plus 16 attribute bits. Now it's an array of
`termchar' structures, which currently have 32-bit Unicode and 32
attribute bits but which will probably expand further in future.
To prevent bloat of the memory footprint, I've introduced a mostly
RLE-like compression scheme for storing scrollback: each line is
compressed into a compact (but hard to modify) form when it moves
into the term->scrollback tree, and is temporarily decompressed when
the user wants to scroll back over it. My initial tests suggest that
this compression averages about 1/4 of the previous (32 bits per
character cell) data size in typical output, which means this is an
improvement even without counting the new ability to extend the
information stored in each character cell.
Another beneficial side effect is that the insane format in which
Unicode was passed to front ends through do_text() has now been
rendered sane.
Testing is incomplete; this _may_ still have instabilities. Windows
and Unix front ends both seem to work as far as I've looked, but I
haven't yet looked very hard. The Mac front end I've edited (it
seemed obvious how to change it) but I can't compile or test it.
As an immediate functional effect, the terminal emulator now
supports full 32-bit Unicode to whatever extent the host platform
allows it to. For example, if you output a 4-or-more-byte UTF-8
character in Unix pterm, it will not display it properly, but it
will correctly paste it back out in a UTF8_STRING selection. Windows
is more restricted, sadly.
Jacob Nevins [Wed, 6 Oct 2004 22:31:07 +0000 (22:31 +0000)]
X forwarding changes:
- new function platform_get_x_display() to find a sensible local display.
On Unix, the Gtk apps weren't taking account of --display when
determining where to send forwarded X traffic.
- explicitly document that leaving X display location blank in config tries
to do something sensible (and that it's now blank by default)
- don't override X11Display setting in plink, since that's more properly
done later
Jacob Nevins [Sat, 2 Oct 2004 00:33:27 +0000 (00:33 +0000)]
`ssh-log-pw-blank': known password fields are now omitted from SSH packet logs
by default (although they can be included). There's also an option to remove
session data, which is good both for privacy and for reducing the size of
logfiles.
Jacob Nevins [Wed, 29 Sep 2004 23:57:03 +0000 (23:57 +0000)]
Mention the negotiated SSH-2 MAC algorithm(s) in the Event Log.
(It should be possible to at least see what MAC is in use without going to a
SSH packet log.)
Jacob Nevins [Tue, 21 Sep 2004 21:04:28 +0000 (21:04 +0000)]
Add `OSU_1.5alpha4' to BUG_CHOKES_ON_SSH1_IGNORE; this is apparently enough to
enable login with this version. (I'd suspected as much -- see ssh.c CVS
log 1.299 [r3359] -- and Geoffrey Hughes has now confirmed this.)
Simon Tatham [Mon, 30 Aug 2004 13:11:17 +0000 (13:11 +0000)]
Malcolm Smith's patch to support CHAP (digest-based) authentication
when talking to SOCKS 5 proxies. Configures itself transparently (if
the proxy offers CHAP it will use it, otherwise it falls back to
ordinary cleartext passwords).
Simon Tatham [Sat, 28 Aug 2004 16:51:26 +0000 (16:51 +0000)]
More sensible error handling when we receive an SSH1 public key
modulus of zero (!!), and also a robustness fix in ssh1_rdpkt which
I happened to notice while debugging that.
Jacob Nevins [Fri, 20 Aug 2004 08:32:30 +0000 (08:32 +0000)]
alternate-localhost WinXP SP2: apparently SP2 fixes the problem with
Terminal Services that meant you needed to use alternate-localhost in
the first place!
Jacob Nevins [Thu, 19 Aug 2004 15:05:31 +0000 (15:05 +0000)]
Fix an annoying inconsistency that's been bugging me for years: "plink host"
and "plink user@host" differed in that the former attempted to load session
`host' while the latter didn't. Now both forms attempt to load a session.
Someone will probably complain, but hey.
Jacob Nevins [Tue, 17 Aug 2004 14:08:05 +0000 (14:08 +0000)]
Someone complained that their keyboard-interactive password prompt was being
truncated - it was from OpenSSH on HP/UX and had all sorts of stuff in it
("last successful login" etc).
Bodged it by bumping up the space allocated in the fixed array for a password
prompt. Also added an indication that the prompt is being truncated, as
required by draft-ietf-secsh-auth-kbdinteract-06.
(NB that before this checkin, there was a more-or-less harmless buffer overread
where if we ever received a keyboard-interactive prompt with echo=1, we'd
probably spew goo on the terminal; fixed now.)
Jacob Nevins [Mon, 16 Aug 2004 09:38:12 +0000 (09:38 +0000)]
Patch from Kurt Roeckx: apparently on Debian amd64, the ut_time member of
struct utmp is not equivalent to time_t (it's 32-bit). From Debian bug#265910.
Simon Tatham [Sat, 14 Aug 2004 13:04:18 +0000 (13:04 +0000)]
Implement `Restart Session', in both Unix and Windows PuTTY. Largely
because Owen questioned whether it was really easy enough to be
labelled `fun' in the bug database :-)
Jacob Nevins [Fri, 13 Aug 2004 01:08:34 +0000 (01:08 +0000)]
Extra logging in SSH-2 port-forwarding. Most obviously, the opening of a
forwarded X11 connection is now logged as well as the closing; but we also
log the peer IP/port in case it's interesting, and log the reason for
refusing to honour a channel open.
Jacob Nevins [Thu, 12 Aug 2004 01:02:01 +0000 (01:02 +0000)]
Flush the logfile reasonably frequently in `printable output only' and
`all session data' modes, without completely mauling the performance, by
fflush()ing once per term_out(). If anyone complains I suppose we can
make this optional.
Simon Tatham [Tue, 10 Aug 2004 17:12:31 +0000 (17:12 +0000)]
Remove the email address from the footer of the HTML manual, and
replace it with a link to the Feedback page, as we have long since
done everywhere else on the PuTTY website.
Jacob Nevins [Mon, 9 Aug 2004 17:01:25 +0000 (17:01 +0000)]
Apparently sending the tar output to stdout rather than a file causes tar to
pad with trailing NULs, which slightly upsets old versions of gzip (1.2.4,
not 1.3.x), which upsets some of our correspondents.
Use -f to send it to a file instead. (It's not transparently clear what
happens when you mix -f and -C; I've tested this with ixion's tar, 1.13.25.)
Also add option -o to generate POSIX tar files, as for halibut/Makefile;
apparently this shuts up a `trailing garbage' error from WinZip.
Jacob Nevins [Tue, 3 Aug 2004 23:43:07 +0000 (23:43 +0000)]
When using remote forwarding with SSH-1, you'd get bogus 'SSH1 cannot
handle source address spec ":10023"; ignoring' type errors in the
Event Log. The forwarding would go ahead as normal so this is
cosmetic. Fixed.
Jacob Nevins [Fri, 30 Jul 2004 09:38:37 +0000 (09:38 +0000)]
Tweak to make it more obvious that the System menu is only available from
the _terminal_ window -- should be obvious from context but the nearest
context is some distance away.
Jacob Nevins [Wed, 28 Jul 2004 11:04:22 +0000 (11:04 +0000)]
Another wart in the command-line processing: if the user just specifies
`-load sessname', and that mentions a hostname, that should be sufficient
to start a connection.
Jacob Nevins [Sun, 25 Jul 2004 19:52:07 +0000 (19:52 +0000)]
Attempt to make Windows pointer hiding more robust by ignoring MOUSEMOVE and
NCMOUSEMOVE messages where nothing actually changes. It seems Windows likes
to send such messages occasionally when other stuff is going on (e.g., in
other windows).
(Also spotted by Franco Barber <20040122055232.GA8168@febsun.cmhnet.org>.)
Jacob Nevins [Sun, 25 Jul 2004 16:10:48 +0000 (16:10 +0000)]
PSFTP was ignoring `-1' and `-2' and always using SSH-2 with fallback to
SSH-1. It also ignored any settings forbidding fallback to SSH-1.
Ignoring `-1' and `-2' is hardly the end of the world, as it'd be difficult
to think of a realistic situation where fallback didn't do the right thing
and PSFTP was still useful. However, ignoring a user's `SSH-2 only' setting
was a bit rude.
Jacob Nevins [Sun, 25 Jul 2004 14:00:26 +0000 (14:00 +0000)]
Fix for `psftp-pscp-ignore-load': Default Settings is now loaded
before "-load" is processed so that it doesn't clobber it.
I've also changed the semantics of "-load" slightly for PSCP, PSFTP,
and Plink: if it's specified at all, it overrides (disables) the
implicit loading of session details based on a supplied hostname
elsewhere (on the grounds that the user is more likely to want the
"-load" session than the implicit session). (PuTTY itself doesn't do
implicit loading at all, so I haven't changed it.)
This means that all the PuTTY tools' behaviour is now consistent iff
"-load" is specified (otherwise, some tools have implicit-session, and
others don't).
However, I've not documented this behaviour, as there's a good chance
it will be swept away if and when we get round to sorting out how we
deal with settings from multiple sources. It's intended as a "do
something sensible" change.
Jacob Nevins [Sun, 25 Jul 2004 12:12:53 +0000 (12:12 +0000)]
Text around -load option "(although Plink still requires an explicitly
specified host name)" didn't appear to actually be true any more (see
`cmdline-host-override'). Removed
Jacob Nevins [Sun, 20 Jun 2004 17:07:38 +0000 (17:07 +0000)]
Add a configuration option for TCP keepalives (SO_KEEPALIVE), default off.
No very good reason, but I've occasionally wanted to frob it to see if it
makes any difference to problems I'm having, and it was easy.
Tested that it does actually cause keepalives on Windows (with tcpdump);
should also work on Unix. Not implemented on Mac (does nothing), but then
neither is TCP_NODELAY.
Quite a big checkin, much of which is adding `keepalive' alongside `nodelay'
in network function calls.
Simon Tatham [Tue, 15 Jun 2004 09:50:05 +0000 (09:50 +0000)]
`Authenticating with key' message when using a local key file in
SSH2 was not contained within a test for FLAG_VERBOSE. Thanks to
Paul Gotch for pointing this out.
Jacob Nevins [Thu, 3 Jun 2004 10:36:27 +0000 (10:36 +0000)]
Spotted by Dimitry Andric: `ssh-termspeed' implementation was not taking
account of coroutines and used local variables over a crFoo. I believe the
impact was cosmetic, affecting the speeds reported in the Event Log only.
I've put the variables `ispeed' and `ospeed' in the main ssh_tag structure,
even though they're only live for a short duration; I did this rather than
create a new state struct for ssh1_protocol() (since ssh_tag already has
short-duration junk like portfwd_strptr).
Simon Tatham [Mon, 24 May 2004 11:30:15 +0000 (11:30 +0000)]
Arnaud Desitter points out a silly mistake in retrieve_cutbuffer()
(don't test for `int *nbytes' being <= 0, test for the integer it
points to being <= 0!).
Simon Tatham [Sat, 22 May 2004 11:09:31 +0000 (11:09 +0000)]
Halibut now warns about code paragraph lines which are too long to
fit in the text output format. If only to stop myself getting
pestered with cron stderr messages every night, here are some
changes that remove over-long code lines from the PuTTY manual.
Simon Tatham [Sat, 22 May 2004 10:36:50 +0000 (10:36 +0000)]
At last! After much delay, much faffing back and forth, and much
enhancement and fiddling, I have now massaged Arabeyes' first patch
into a form I'm happy to check in. Phew.
Simon Tatham [Thu, 20 May 2004 12:48:19 +0000 (12:48 +0000)]
I added more detail to the `Authentication failed at PuTTY X11
proxy' error message some time ago, but forgot to change the wording
in the error messages chapter.
Simon Tatham [Thu, 6 May 2004 11:27:58 +0000 (11:27 +0000)]
A user at ARM just found his home directory was _world_ writable,
and this caused public key authentication to fail in spite of
following our instructions to the letter. It can't hurt to
s/g-w/go-w/ here, just in case!