Jacob Nevins [Sat, 17 Jun 2006 12:02:03 +0000 (12:02 +0000)]
Robert Evans spotted that bignum_decimal() failed to cope with being given
a zero input.
This shouldn't matter for PuTTY, as these routines are only used in PuTTYgen,
to output SSH-1 format public key exponents/moduli, which should be nonzero.
Jacob Nevins [Sun, 11 Jun 2006 12:56:52 +0000 (12:56 +0000)]
Do not send raw mouse events in the middle of a selection operation, even if
we otherwise would (for instance, if Shift is released before the mouse button
being used for selection).
Simon Tatham [Fri, 2 Jun 2006 08:46:34 +0000 (08:46 +0000)]
Lionel Fourquaux offers this very simple patch to speed up SFTP,
simply by upping the packet sizes and maximum in-flight packet
count. Got to be worth a try, I think!
Jacob Nevins [Sun, 21 May 2006 12:20:42 +0000 (12:20 +0000)]
Port r6710 from puzzles:
Patch from Ben Hutchings to prevent an ugly special case in
&splitline in which a line is `split' into a line ending in a
backslash followed by a completely blank line.
Jacob Nevins [Wed, 26 Apr 2006 23:01:06 +0000 (23:01 +0000)]
sbcsgen.pl was giving different results on different machines in the case
where two SBCS code points mapped to a single Unicode point.
Changed so that by default it favours the lower SBCS code point.
On ixion, this highlighted ambiguities in CS_MAC_THAI, CS_MAC_SYMBOL, and
CS_VISCII. Guessed at a preference for the first two and added "sortpriority"
directives. (No idea about VISCII.)
Jacob Nevins [Thu, 13 Apr 2006 21:18:09 +0000 (21:18 +0000)]
Everywhere we print an fxp_error(), try to make it clear what we were trying
to do at the time.
(A lot of these say just "canonify:". This isn't a nice thing to show to a
user, but I don't believe canonify() will ever return failure due to a server
error, so users shouldn't actually see it, and it means we have a chance of
tracing it if reported.)
Jacob Nevins [Fri, 7 Apr 2006 21:42:30 +0000 (21:42 +0000)]
Remove login name prompt from PSFTP.
ssh.c will prompt for a login name as required, and doing so in psftp.c
before we've even made a connection is incorrect wrt `bypass-ssh2-userauth'.
Simon Tatham [Wed, 8 Mar 2006 18:10:12 +0000 (18:10 +0000)]
David Damerell tells me I should be using Ctrl-hjklyubn rather than
Shift-hjklyubn for batch movement in NetHack, because they have
subtly different behaviour within the game and the Ctrl-moves are
more useful. Unfortunately, PuTTY's NetHack keypad mode doesn't
support Ctrl-moves. Therefore, it does now :-)
Jacob Nevins [Mon, 27 Feb 2006 22:27:49 +0000 (22:27 +0000)]
Batch of miscellaneous tweaks to the Windows installer:
- Now we've fixed `win-versioninfo', choose some sensible outcomes from
the installer's comparisons of binary version numbers. Also, give the
installer _itself_ a matching binary version.
In particular, without this change, it would not have been possible
to downgrade PuTTY -- it would have silently left the "newer" files in
place. Now it will make some fuss, but permit it.
- Also remove descriptions from shortcuts, on the grounds that the
binaries have embedded descriptions now. (Although I've not checked
whether those are actually visible in the Start Menu.)
- At the request of various people (e.g., PJB), add flags so that if
files are in use at the time the (un)installer is run, replacement is
deferred to the next restart. (The user may be prompted to restart,
which isn't ideal; see comments).
This is supposed to make centrally-pushed silent upgrades more robust.
- Note some limitations of the installer.
Jacob Nevins [Sat, 25 Feb 2006 14:13:46 +0000 (14:13 +0000)]
Alain Guibert points out that palette changes weren't causing the space
between the text area and the window border to be refreshed.
Fixed on Windows. Gtk still has a similar problem.
Simon Tatham [Thu, 23 Feb 2006 13:38:44 +0000 (13:38 +0000)]
Do proper select-for-write on ptys. Currently, pasting a
sufficiently large string into pterm in any circumstances in which
it's echoed back to the terminal will cause a deadlock once the
pty's write buffer fills up.
Simon Tatham [Mon, 20 Feb 2006 19:54:17 +0000 (19:54 +0000)]
Alain Guibert points out that ESC]P sequences were erroneously
accepting 'G' as a hex digit. (The _first_ digit of the sequence
intentionally goes up further than F, but the remaining ones
shouldn't have.)
Simon Tatham [Sun, 19 Feb 2006 12:05:12 +0000 (12:05 +0000)]
Introduce a new checkbox and command-line option to inhibit use of
Pageant for local authentication. (This is a `don't use Pageant for
authentication at session startup' button rather than a `pretend
Pageant doesn't exist' button: that is, agent forwarding is
independent of this option.)
Jacob Nevins [Sun, 19 Feb 2006 01:37:45 +0000 (01:37 +0000)]
At last, a fix for `large-clipboard-crash'.
A growable buffer was only being grown for actual text, not for newlines or
trailing NULs. A large run of empty lines could lead to newlines overflowing
the buffer (> 100 should be enough to guarantee this on all platforms, after
the initial 5k size of the buffer).
Also fix some valgrind in the same area (was probably harmless), and a memory
leak introduced by the RTF attribute pasting.
Jacob Nevins [Sat, 11 Feb 2006 19:10:01 +0000 (19:10 +0000)]
Don Heap spotted that our heuristics for dealing with IPv6 literal addresses
in the PSCP command line were bogus, giving "remote to remote not supported"
errors with filenames like '[].txt'. Made the heuristic less bogus.
Jacob Nevins [Sat, 11 Feb 2006 18:00:23 +0000 (18:00 +0000)]
A zero-length return from platform_get_x_display() (for instance, a
zero-length DISPLAY variable in the environment) caused an assertion
failure when X11 forwarding was attempted. Fixed (now treated the same
as a NULL return, e.g., a non-existent DISPLAY variable).
Jacob Nevins [Thu, 9 Feb 2006 23:06:57 +0000 (23:06 +0000)]
Users of Virtual Dimension are reporting that the "Close" menu item and
button tend to get disabled on login.
After a suggestion by "Tkil", change the way we handle the specials menu
to be robust against the window menu being externally modified.
Jacob Nevins [Fri, 27 Jan 2006 20:49:59 +0000 (20:49 +0000)]
Somewhat gruesome tweak to use SetClassLongPtr where available and degrade
nicely elsewhere, which should fix `win64' _properly_.
Tested on recent-ish MinGW (with GetWindowLongPtr but not GetClassLongPtr),
and VC++ 6.0 with a recent SDK, but not with vanilla VC++.
Simon Tatham [Fri, 9 Dec 2005 20:04:19 +0000 (20:04 +0000)]
A few small changes to make the PuTTY source base more usable as a
basis for other terminal-involving applications: a stub
implementation of the printing interface, an additional function in
notiming.c, and also I've renamed the front-end function beep() to
do_beep() so as not to clash with beep() in lib[n]curses.
Jacob Nevins [Wed, 7 Dec 2005 18:01:40 +0000 (18:01 +0000)]
Apparently some SSH servers object to our claiming port-forwarded connections
to be from IP "client-side-connection". Claiming "0.0.0.0" instead seems to
work. Spotted by Brant Thomsen.
Jacob Nevins [Tue, 6 Dec 2005 23:18:27 +0000 (23:18 +0000)]
Improvements from Spyros Blanas to the MSVC optimisations of r6469:
don't do a function call for each divmod, and don't rely on details of
the calling convention.
(This didn't actually make any measurable difference to runtime in any
of my tests, but we may as well keep it as it's neater.)
Also document some general caveats of the divmod macro.
Jacob Nevins [Wed, 23 Nov 2005 21:26:05 +0000 (21:26 +0000)]
An MSVC version of the 16->32-bit bignum optimisation, derived from part of
a patch by Lionel Fourquaux. Seems to be about a factor of four improvement
(see wishlist item for details).
I don't claim to understand this in detail, so I can't vouch for its
correctness, but it didn't fall over immediately. It also produces some
compiler warnings, unfortunately.
Jacob Nevins [Sun, 13 Nov 2005 16:06:41 +0000 (16:06 +0000)]
r6437 broke the case where Pageant is running but contains no SSH-2 keys
that the SSH-2 server is happy with. Fixed, and since I'm here, fix
`pubkeyfile-and-pageant' as well (for SSH-1 and SSH-2).
Also, in SSH-2, we now reexamine "methods that can continue" for every
Pageant key offer, which is technically more correct although it seems
unlikely that it was causing any real problems.
(It's not entirely pretty, but neither was the old code. We could probably
do with some sort of abstraction for public/private keys to avoid carting
lots of fiddly bits of data around.)
Jacob Nevins [Sun, 30 Oct 2005 20:24:09 +0000 (20:24 +0000)]
Revamp SSH authentication code so that user interaction is more
abstracted out; replace loops structured around a single interaction
per loop with less tortuous code (fixes: `ki-multiprompt-crash',
`ssh1-bad-passphrase-crash'; makes `ssh2-password-expiry' and
`proxy-password-prompt' easier).
The new interaction abstraction has a lot of fields that are unused in
the current code (things like window captions); this is groundwork for
`gui-auth'. However, ssh.c still writes directly to stderr; that may
want to be fixed.
In the GUI apps, user interaction is moved to terminal.c. This should
make it easier to fix things like UTF-8 username entry, although I
haven't attempted to do so. Also, control character filtering can be
tailored to be appropriate for individual front-ends; so far I don't
promise anything other than not having made it any worse.
I've tried to test this fairly exhaustively (although Mac stuff is
untested, as usual). It all seems to basically work, but I bet there
are new bugs. (One I know about is that you can no longer make the
PuTTY window go away with a ^D at the password prompt; this should be
fixed.)
Jacob Nevins [Sun, 30 Oct 2005 19:13:43 +0000 (19:13 +0000)]
In Unix PuTTYgen, existing SSH-1 key comments were coming out as "(null)"
for operations not performing decryption (e.g., "puttygen rsa1.ppk -L")
(A use for r6434 -- wasn't expecting that.)
Jacob Nevins [Wed, 26 Oct 2005 22:18:11 +0000 (22:18 +0000)]
Fix an error I introduced into SSH packet logging in r5642: some outgoing
packets over about 256 bytes would be logged with 12 bytes of preceding
garbage. (But the rest of the packet was logged in its entirety. This
holds for packets where (int(len/256)%2)==1, with an appropriate fudge
factor applied to `len'.) Ahem.
Jacob Nevins [Tue, 4 Oct 2005 14:13:28 +0000 (14:13 +0000)]
`win-versioninfo': all builds of all Windows binaries now contain
a VERSIONINFO resource. The versioning scheme is described in
windows/version.rc2.
Some .rc files are now #included in others. In order to keep MSVC
project files working, these have been renamed to .rc2; there may exist
a better solution.
(This checkin also includes the documentation tweak missing from r6367.)
Testing performed:
- MinGW (cross-compiler): works
- VC nmake: works (tested with VC6)
- VC project files: builds with VERSIONINFO resource (no VER variable though)
- Borland: an old version of this patch was tested with it and more or
less worked, except that some of the VERSIONINFO strings were apparently
not terminated properly. Not attempted to work around this.
- LCC: not tested. Some fixes are in there from the last time we tried
this, but then the build ultimately failed and I haven't tried this
since that was fixed.
- Dev-C++: untested. (Haven't done anything special.)
- Unix Gtk/autoconf Makefiles work as before.
Simon Tatham [Mon, 3 Oct 2005 11:38:30 +0000 (11:38 +0000)]
UTF-8 processing was discarding a valid character which interrupted
an otherwise legal sequence, if that valid character was the last
thing in a term_out() run. Spotted by Egmont Koblinger.
Jacob Nevins [Sat, 1 Oct 2005 12:36:46 +0000 (12:36 +0000)]
Split out SVN_REV from SNAPSHOT define. This is to support `win-versioninfo',
but since Simon's made the corresponding change to the build process, this bit
needs checking in now (it should be harmless).
(The documentation in Recipe is slightly out of date; with luck I'll be
checking in `win-versioninfo' changes soon, and I can't be bothered to
disentangle the relevant changes in the meantime.)
Jacob Nevins [Sat, 24 Sep 2005 18:33:06 +0000 (18:33 +0000)]
A first stab at guidance for those lost souls who email us asking for
login names and/or passwords. Feel free to hack.
(NB, renumbers a section of the FAQ.)
Owen Dunn [Wed, 21 Sep 2005 14:53:32 +0000 (14:53 +0000)]
Platform-independent support for zooming around session list by typing
in the session name box. Thwarted on Unix by GTK not automatically
scrolling the listbox to the selected item, but we can fix that in
the platform-specific side later.
Ben Harris [Wed, 14 Sep 2005 10:53:39 +0000 (10:53 +0000)]
Some systems (HP-UX) don't yet have <sys/select.h>, putting select() in
<sys/time.h>. Cope with this. Where <sys/select.h> _is_ available, though,
use it (since it's where POSIX puts select()). Problem reported by Mike
Protts.
Ben Harris [Tue, 13 Sep 2005 20:17:10 +0000 (20:17 +0000)]
When asked to malloc zero bytes, malloc one byte instead. This ensures
that we get a unique pointer rather than NULL (which ANSI C otherwise permits).
Problem pointed out by Mike Protts.
Ben Harris [Tue, 13 Sep 2005 20:08:25 +0000 (20:08 +0000)]
The ANSI-C constant FILENAME_MAX is ludicrously small on some systems.
Use the POSIX PATH_MAX if it exists, and fall back to 1024 otherwise.
We should really allocate filenames dynamically if PATH_MAX isn't defined.