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.)
Owen Dunn [Wed, 23 Feb 2005 21:19:53 +0000 (21:19 +0000)]
Support for setting some options like keepalive, oobinline, nodelay, and
SO_REUSEADDR for ot_newlistener(). Also handle remote-initiated
disconnections.
Simon Tatham [Tue, 22 Feb 2005 23:30:09 +0000 (23:30 +0000)]
Remove the two logevent calls passing NULL as the first argument.
This was copied straight from winnet.c and I don't believe it's
_ever_ been valid in the Unix front end.
Jacob Nevins [Sun, 20 Feb 2005 23:26:47 +0000 (23:26 +0000)]
Change "are you sure you want to close this window" default back to what it
was ("yes"). Partly because it was inconsistent with gtkdlg.c, and partly
because it was annoying me.
Jacob Nevins [Sun, 20 Feb 2005 23:00:17 +0000 (23:00 +0000)]
On Windows, MessageBoxIndirect() was sometimes failing to pop up the host key
dialog and returning an unexpected value (0), causing everything to silently
behave as if the user had said "allow this connection but don't store host
key"!
Initialising (MSGBOXPARAMS).hInstance seems to have cured this (although the
MSDN docs seemed to indicate it wouldn't be used) -- if so, it's been broken
since r5309 on 2004-02-15 -- but since this was something of a Heisenbug, and
the behaviour was so catastrophic when MessageBoxIndirect() behaved oddly, I've
rearranged the code to default to cancelling, and added an assertion for
visibility.
(Windows PuTTY still seems to be broken wrt servers that send NEWKEYS while
we're waiting for the user, which happens to include the "SSH-2.0-2.4.1 SSH
Secure Shell OpenVMS V1.0" I'm testing against. I don't know why. The above bug
may also have been limited to this circumstance.)
Owen Dunn [Sun, 20 Feb 2005 12:54:10 +0000 (12:54 +0000)]
Support the drop-down menu part of the editbox control (combobox). This
cuts and pastes a lot of code from macctrl_popup, which perhaps should be
consolidated. Also change the effective line codepage when it is changed
with Change Settings.
Simon Tatham [Fri, 18 Feb 2005 18:33:31 +0000 (18:33 +0000)]
Add asynchronous callback capability to the askappend() alert box.
This was harder than verify_ssh_host_key() and askalg() put
together, because:
(a) askappend() can be called at any time, since it's a side effect
of data-logging functions. Therefore there can be an unfinished
askappend() alert at any time, and hence the OS X front end has
to be prepared to _queue_ other alerts which occur during that
time.
(b) logging.c has to do something with data that comes in while
it's waiting for an answer to askappend(). It buffers it until
it knows what the user wants done with it. This involved
something of a reorganisation of logging.c.
Simon Tatham [Thu, 17 Feb 2005 19:31:32 +0000 (19:31 +0000)]
Adjust the semantics of cfg.remote_cmd_ptr: it is now NULL when
cfg.remote_cmd is to be used, rather than actually pointing at
cfg.remote_cmd. This change restores the ability to structure-copy
Configs without breaking them. (Though of course this is only a
temporary solution: really what wants doing is to fix
`config-struct'.)