Jacob Nevins [Tue, 5 Apr 2005 18:11:31 +0000 (18:11 +0000)]
Add target to build `info' file.
We probably already require a new enough version of Halibut that this isn't
a problem; nevertheless, I've put it in a separate target for now.
Jacob Nevins [Tue, 5 Apr 2005 18:01:32 +0000 (18:01 +0000)]
Index the complete PuTTY manual.
This was a bit rushed, and could doubtless be improved.
Also fix a couple of things I noted on the way, including:
- "pscp -ls" wasn't documented
- Windows XP wasn't mentioned enough
Simon Tatham [Fri, 1 Apr 2005 08:46:26 +0000 (08:46 +0000)]
sk_address_is_local() was ignoring the possibility that a SockAddr
might have an IPv4 address in `ai' rather than in `addresses'.
Thanks to Martin Prikryl for pointing this out.
Simon Tatham [Thu, 31 Mar 2005 18:52:21 +0000 (18:52 +0000)]
Add text to the troubleshooting chapter about the errors that can be
caused when an active connection times out due to outgoing data
exceeding its maximum number of retries, and mention that this can
occur even when you didn't think you'd sent anything due to rekeys
and/or keepalives.
Unix generates ETIMEDOUT in this situation. Windows, it turns out
after doing an actual experiment by disabling my firewall, generates
ECONNABORTED! So _that's_ what it means under Windows. I wish I'd
done this experiment years ago now.
Simon Tatham [Thu, 31 Mar 2005 13:45:41 +0000 (13:45 +0000)]
FAQ entry on rekeys: Jacob would like to pre-emptively try to avoid
the possibility of people falling back to SSH-1 just because it gets
rid of the irritating delays.
Simon Tatham [Thu, 31 Mar 2005 12:25:48 +0000 (12:25 +0000)]
Beef up the `unfinished and experimental' warnings for the two Mac
ports, mentioning in particular that even if you downloaded a
_release_ source archive these particular ports are not considered
to be of release quality.
Simon Tatham [Wed, 30 Mar 2005 19:33:24 +0000 (19:33 +0000)]
Further fix for lcc-win32. The PuTTY suite now compiles fine for me
using lcc-win32 v3.8 (compilation date Mar 2 2005 18:40:17) provided
I pass COMPAT="-DNO_IPV6 -DNO_MULTIMON" on the command line.
Simon Tatham [Wed, 30 Mar 2005 08:27:54 +0000 (08:27 +0000)]
<1112163342.018492.101240@f14g2000cwb.googlegroups.com> on
comp.security.ssh contains a Dr Watson log which looks to me as if
`unclean-close-crash' occurred due to a rekey timer going off after
the session had closed. Hence, ssh2_timer() now avoids doing
anything if the session is already closed, and also ssh_do_close()
proactively calls expire_timer_context(). Between those I think they
ought to solve the problem.
Simon Tatham [Tue, 29 Mar 2005 13:10:33 +0000 (13:10 +0000)]
After we receive EOF on stdin, we should clear ssh->send_ok so that
we stop trying to read anything further from stdin. Otherwise we
send a continuous stream of SSH2_MSG_CHANNEL_EOF.
Simon Tatham [Mon, 28 Mar 2005 17:48:24 +0000 (17:48 +0000)]
Render timing.c robust in the face of strangeness. The strangenesses
in question vary per OS: on Windows the problem is that WM_TIMER
sometimes goes off too early, so that GetTickCount() is right and
the callback time is wrong, whereas on Unix the problem is that my
GETTICKCOUNT implementation comes from the system clock which means
it can change suddenly and non-monotonically if the sysadmin is
messing about (meaning that the timing of callbacks from GTK or
select timeouts is _more_ likely to be right than GETTICKCOUNT).
This checkin provides band-aid workarounds for both problems, which
aren't pretty but ought to at least prevent catastrophic assertion
failure.
Jacob Nevins [Wed, 23 Mar 2005 20:04:08 +0000 (20:04 +0000)]
`wcwidth-upgrade': upgrade to latest wcwidth.c from Markus Kuhn
<http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c>.
This is identified both internally and in HTTP headers as 2003-05-20,
for Unicode 4.0.
Only changes from upstream are to make mk_wcwidth_cjk() non-static and to
#include "putty.h" for prototypes.
The status of some code points has changed; see the wishlist item. We've
had some feedback from the CJK and Arabic communities that upgrading is
probably the right thing to do.
Jacob Nevins [Wed, 23 Mar 2005 01:08:18 +0000 (01:08 +0000)]
Another fix from Hung-Te Lin; apparently in some IMEs (such as
"MS NewPhonetics"), move events (arrow keys) were being doubled up,
apparently because we turned both KEYDOWN and KEYUP events into new
KEYDOWN events.
I don't claim to understand the precise effect of this patch :( but
I'm reasonably confident that it only affects IME users, and experimentally
it doesn't seem to break anything obvious, so if piaip says it makes
things better that's good enough for me :)
Jacob Nevins [Mon, 21 Mar 2005 22:20:22 +0000 (22:20 +0000)]
Hung-Te Lin spotted that the `multi-changesettings-crash' workaround for Windows
would prevent a user opening Change Settings if they'd cancelled a previous
Change Settings.
Jacob Nevins [Mon, 21 Mar 2005 01:51:22 +0000 (01:51 +0000)]
Trim application manifests as much as MS' documentation and Owen's experiments
on XP allow while still having the desired effect -- this allows removal of
some fibs.
Also, change version number to 0.0.0.0 in preparation for `win-versioninfo'
(not that we found anything that took any notice of the version number
declared here).
Jacob Nevins [Mon, 21 Mar 2005 01:05:38 +0000 (01:05 +0000)]
Improvement for IME font display from Hung-Te Lin.
Not tested, but it appears only to affect Glenn Maynard's r1406 code from
<20011006170741.A23470@zewt.org> and nothing else, so seems harmless enough.
Ben Harris [Sat, 19 Mar 2005 19:23:49 +0000 (19:23 +0000)]
Revert last change: Some versions of the GNU C Library (notably SUSE
glibc-2.3.3-118 and Debian libc6 2.3.2.ds1-20) have clock_gettime() and
CLOCK_MONOTONIC in their headers, but not in libc itself, which we can't
detect easily.
Ben Harris [Sat, 19 Mar 2005 19:02:53 +0000 (19:02 +0000)]
If it's available, try to use clock_gettime(CLOCK_MONOTONIC) rather than
gettimeofday(), since the former shouldn't warp when the user resets the clock.
Simon Tatham [Sat, 19 Mar 2005 16:34:58 +0000 (16:34 +0000)]
Work around lcc's annoying (but, even more annoyingly, legitimate)
refusal to allow comparison of function pointers. Unfortunately this
still doesn't cause PuTTY to compile on my lcc installation, because
the GetCharacterPlacement stuff in exact_textout() is missing from
its header files. This may have been fixed in a future version (I'm
using lcc-win32 version 3.8 from December 2003), but I haven't
checked.
Jacob Nevins [Sat, 19 Mar 2005 02:26:58 +0000 (02:26 +0000)]
Try to make our PGP signing more useful:
* All the PuTTY tools for Windows and Unix now contain the fingerprints of
the Master Keys. The method for accessing them is crude but universal:
a new "-pgpfp" command-line option. (Except Unix PuTTYgen, which takes
"--pgpfp" just to be awkward.)
* Move the key policy discussion from putty-website/keys.html to
putty/doc/pgpkeys.but, and autogenerate the former from the latter.
Also tweak the text somewhat and include the fingerprints of the
Master Keys themselves.
(I've merged the existing autogeneration scripts into a single new
one; I've left the old scripts and keys.html around until such time
as the webmonster reviews the changes and plumbs in the new script;
he should remove the old files then.)
Simon Tatham [Thu, 17 Mar 2005 19:49:51 +0000 (19:49 +0000)]
The structural reorganisation of ssh.c (r4909) caused
ssh2_try_send() to no longer be run after receiving WINDOW_ADJUSTs.
I believe this is likely to have been the cause of recent PSCP
hanging issues.
Simon Tatham [Wed, 16 Mar 2005 13:20:02 +0000 (13:20 +0000)]
Fix `telnet-option-loop', I think. (Untested except to check it
compiles, since I don't have a suitably awkward server to run it
against; but Ben reviewed the patch before checkin so we can share
the blame if it doesn't work.)
Jacob Nevins [Fri, 11 Mar 2005 15:52:59 +0000 (15:52 +0000)]
Retire MINGW32_FIX. It was a fix for a blatant bug in MinGW's windres, which
was fixed in CVS in 2000 (I think); and we now depend on MinGW much more
recent than that for various other reasons. I've tested with my current
MinGW (around 2.0.0 vintage) and the original symptoms (dodgy characters in
edit boxes) don't appear to show up.
Simon Tatham [Thu, 10 Mar 2005 20:11:27 +0000 (20:11 +0000)]
Thanks to D H Becker for sending in an icon. I'd have liked to have
written a script which would generate the various graphical
components of the PuTTY icon suite at any given resolution and then
used that to generate the OS X icon as well as all the others, but I
can always do that later; this'll do for now.
Jacob Nevins [Thu, 10 Mar 2005 16:36:05 +0000 (16:36 +0000)]
Consistently use a single notation to refer to SSH protocol versions, as
discussed. Use Barrett and Silverman's convention of "SSH-1" for SSH protocol
version 1 and "SSH-2" for protocol 2 ("SSH1"/"SSH2" refer to ssh.com
implementations in this scheme). <http://www.snailbook.com/terms.html>
Owen Dunn [Thu, 10 Mar 2005 10:07:27 +0000 (10:07 +0000)]
Protect against multiple Change Settings dialogues. We should probably also
arrange to switch to an existing Change Settings if the user selects the
menu item and we already have a Change Settings.
Jacob Nevins [Tue, 8 Mar 2005 23:06:15 +0000 (23:06 +0000)]
Ben Hutchings reports that new PuTTY instances created from the saved
sessions menu (etc) can inherit listening sockets, and that this sometimes
causes trouble. Can't reproduce any problems myself, but let's only allow
inheritance when absolutely necessary -- Duplicate Session -- in which
case there's already going to be trouble with two processes trying to
listen on the same port.
Simon Tatham [Mon, 7 Mar 2005 16:40:11 +0000 (16:40 +0000)]
Charlie at work points out that the screen FAQ contains a different
- and probably better - solution to the screen-vs-alt-screen issue.
Reference it and describe the fix.
Simon Tatham [Mon, 7 Mar 2005 14:07:19 +0000 (14:07 +0000)]
`What commands can I type into my PuTTY session' is probably the
single most frequently asked thing which isn't in the FAQ (it's in
feedback.but instead), so let's add it. I'm uncertain that the
people who mail us asking things like `how do I read my email' and
`how do I access $database' will successfully recognise this more
general question as one which includes their specific one, but it's
worth a try.
Jacob Nevins [Sun, 6 Mar 2005 16:38:19 +0000 (16:38 +0000)]
Add notification when using the various auth methods with server-supplied
prompts, to make it more obvious if a server is attempting to spoof a local
passphrase prompt.
I believe an alert user could have spotted this in all cases in SSH-2,
although perhaps not in SSH-1. (But they'd have to have enabled
TIS/CryptoCard.)
Simon Tatham [Sun, 6 Mar 2005 14:48:22 +0000 (14:48 +0000)]
I'm sick and tired of the persistent reports of lineptr() failing
its `line != NULL' assertion, so I've replaced the assertion with a
call to fatalbox() giving oodles of information. I may still not be
able to reproduce it, but at least next time it happens we should
see a decent amount of debugging data!
Simon Tatham [Sat, 5 Mar 2005 18:14:57 +0000 (18:14 +0000)]
Over-enthusiastic assertions in the port forwarding code removed.
Port forwardings are set up before initialising the last few details
of the main shell session, so ssh->state can reasonably hold values
other than SSH_STATE_SESSION and SSH_STATE_CLOSED during calls to
sshfwd_*.
Simon Tatham [Sat, 5 Mar 2005 17:56:28 +0000 (17:56 +0000)]
Make sure we do notify_remote_exit(ssh->frontend) _before_
connection_fatal(), since the latter is entitled to destroy the
backend so `ssh' may no longer be valid once it returns.
For the Unix port, switch exit(0) to gtk_main_quit() in
notify_remote_exit(), so that we don't exit before the subsequent
connection_fatal()!
Jacob Nevins [Fri, 4 Mar 2005 01:54:56 +0000 (01:54 +0000)]
Fix potential fault where -L/-R/-D could accept a string too long for our
portfwd[] array. (Not sure what would happen in this case, mind.)
Also modify -L/-R/-D code to cope with IPv4/IPv6 tunnels in saved settings.
Jacob Nevins [Tue, 1 Mar 2005 23:48:45 +0000 (23:48 +0000)]
Fix off-by-one in memory management of PPK reading routine, which could cause
1-byte buffer overflow when reading .PPK files with long lines (>=128 bytes
in header value -- probably only happened in practice in the comment field).
Owen Dunn [Tue, 1 Mar 2005 21:38:06 +0000 (21:38 +0000)]
Close on exit. I'm not entirely happy with the distribution of this
across mac_closeterm() and notify_remote_exit() but it will do for now.
Also, "PuTTY (inactive)" looks strange as a Mac window title in a way it
doesn't on Unix or Windows. Perhaps we should find another way of
indicating that a window contains a dead session?
Jacob Nevins [Tue, 1 Mar 2005 21:34:21 +0000 (21:34 +0000)]
Update Inno Setup script. Tested with IS 5.0.8 on Win98SE; I think there are
a few things that will faze whatever we're using currently (2.0.19 or
thereabouts?), but nothing desperately modern. (NB, the 0.57 putty.iss works
fine with 5.0.8 and the installer is even 40k smaller.)
Notable changes:
- Uninstallation now runs a variant of `putty -cleanup'. The variance is
only in the text displayed; the user is still prompted, and the default
action is (now) "keep" in both cases.
- Optionally add an icon in the Quick Launch bar.
- Make desktop item optionally for all users. (not tested)
- "Create a Start Menu group" now handled via IS' own mechanism.
Jacob Nevins [Tue, 1 Mar 2005 12:19:58 +0000 (12:19 +0000)]
VC didn't like PATH_MAX. Use MAX_PATH instead. (This macro is mentioned in
MSDN's SetCurrentDirectory() documentation, although I haven't found a
statement of where it's supposed to be defined.)
Jacob Nevins [Tue, 1 Mar 2005 01:16:57 +0000 (01:16 +0000)]
Add context help to a couple of message boxes. Unfortunately the ones
I wanted to get to -- "software caused connection abort" and friends --
are going to be more involved (probably requiring some cross-platform
notion of help contexts), and these ones hardly seem worth the effort.
Still, I've done it now.
Side-effect: Pageant now uses the same `hinst' and `hwnd' globals as
everything else. Tested basic functionality.
Jacob Nevins [Tue, 1 Mar 2005 00:00:09 +0000 (00:00 +0000)]
Move the MessageBox-with-help function out into winutils.c, although it's
still only used for the host key popups. Side-effects:
- requested_help is a winstuff.h global
- Pageant now defines winstuff.h globals
(Also, my previous fix to my improved host-key dialogs only got the "changed"
case, not the "unknown" case. Some days I shouldn't be let near a keyboard.)
Jacob Nevins [Mon, 28 Feb 2005 02:40:43 +0000 (02:40 +0000)]
Fix for `pageant-dirhandle': a new wrapper functions `request_file()' maintains
a separate CWD for the file requester, so that when the Open File box is not
open Pageant should stay where it was started.
(Also some other minor cleanups in this area of Pageant.)
Jacob Nevins [Sun, 27 Feb 2005 23:57:17 +0000 (23:57 +0000)]
Move SaneDialogBox()/SaneEndDialog() from winmisc.c to windlg.c, since they
seem to be PuTTY(tel)-specific (at least at the moment). Might save a bit
of space in the other binaries.
Jacob Nevins [Sun, 27 Feb 2005 23:01:11 +0000 (23:01 +0000)]
Improvements to PuTTYgen error reporting:
- will now display a reason when it fails to load a key
- uses existing error return from native keys
- import.c had a lot of error descriptions which weren't going anywhere;
since the strings are probably taking up space in the binary, we
may as well use them
Jacob Nevins [Sat, 26 Feb 2005 15:50:29 +0000 (15:50 +0000)]
The comment that Private-Hash: was not allowed in DSS PuTTY-User-Key-File-1
keys was apparently incorrect; prior to r1413, it was both allowed, and
generated for passphraseless keys. Remove it and associated validation so that
people are able to load such keys into PuTTYgen to upgrade them, as suggested.
Simon Tatham [Sat, 26 Feb 2005 13:37:07 +0000 (13:37 +0000)]
Sort out close-on-exit, connection_fatal(), fatalbox(), and
[SessionWindow dealloc] (which was required in order to avoid
segfaulting when a redraw timer fired for a closed session window!).
Jacob Nevins [Sat, 26 Feb 2005 00:41:36 +0000 (00:41 +0000)]
We weren't correctly discounting "." and ".." when they came from
FindFirstFile(), with hilarious consequences for recursive transfers in
PSFTP. (PSCP appears to behave fine; it does its own "."/".." removal.)