]> asedeno.scripts.mit.edu Git - PuTTY.git/log
PuTTY.git
17 years agoVersion number bumps, and associated changes, for the 0.59 release. 0.59
Simon Tatham [Wed, 24 Jan 2007 20:16:33 +0000 (20:16 +0000)]
Version number bumps, and associated changes, for the 0.59 release.

[originally from svn r7146]

17 years agoThe direct link between the terminal and the back end via
Simon Tatham [Wed, 24 Jan 2007 13:53:28 +0000 (13:53 +0000)]
The direct link between the terminal and the back end via
term_provide_resize_fn() was not being broken when the back end was
destroyed on session termination, causing resizing an inactive PuTTY
to be a segfault hazard.

[originally from svn r7143]

17 years agofaq-xpwontrun wants tweaking before the next release.
Jacob Nevins [Wed, 24 Jan 2007 11:20:14 +0000 (11:20 +0000)]
faq-xpwontrun wants tweaking before the next release.

[originally from svn r7142]

17 years agoMention XXX-REVIEW-BEFORE-RELEASE in the same place as
Jacob Nevins [Tue, 23 Jan 2007 14:12:42 +0000 (14:12 +0000)]
Mention XXX-REVIEW-BEFORE-RELEASE in the same place as
XXX-REMOVE-BEFORE-RELEASE.

[originally from svn r7141]

17 years agoMention the potential networked-CHM problem in the post-installer
Simon Tatham [Tue, 23 Jan 2007 11:38:11 +0000 (11:38 +0000)]
Mention the potential networked-CHM problem in the post-installer
README.

[originally from svn r7140]

17 years agoChecklist updates for the upcoming release, mostly to do with the
Simon Tatham [Tue, 23 Jan 2007 11:15:56 +0000 (11:15 +0000)]
Checklist updates for the upcoming release, mostly to do with the
retirement of the Alpha build.

[originally from svn r7139]

17 years agoAdd an icon for the PuTTY installer. Design concept (and noticing
Simon Tatham [Mon, 22 Jan 2007 18:02:06 +0000 (18:02 +0000)]
Add an icon for the PuTTY installer. Design concept (and noticing
that Inno Setup had an option to specify an icon) by Jacob; detailed
artwork and translation into Python by me.

[originally from svn r7136]

17 years agoImprove error reporting.
Simon Tatham [Mon, 22 Jan 2007 14:04:33 +0000 (14:04 +0000)]
Improve error reporting.

[originally from svn r7135]

17 years agoFix several bugs that stopped %proxyport from doing anything useful.
Jacob Nevins [Sun, 21 Jan 2007 23:34:51 +0000 (23:34 +0000)]
Fix several bugs that stopped %proxyport from doing anything useful.

[originally from svn r7133]

17 years agoFix Plink, the serial backend, and local-proxy support on Win98SE (at least),
Jacob Nevins [Sun, 21 Jan 2007 23:34:35 +0000 (23:34 +0000)]
Fix Plink, the serial backend, and local-proxy support on Win98SE (at least),
which have been broken since r6797.
(At least some versions of Win9x are gratuitously picky about the arguments to
CreateThread(), requiring lpThreadId not to be NULL.)

[originally from svn r7132]
[r6797 == 291533d3f9abb6f33ebe2a73f34420fc9f8e9433]

17 years agoFix compiles on GCC 3.3, which doesn't know about assert(0);
Ben Harris [Sat, 20 Jan 2007 20:05:46 +0000 (20:05 +0000)]
Fix compiles on GCC 3.3, which doesn't know about assert(0);

[originally from svn r7130]

17 years agoMention more versions of Windows. (Not Vista, yet.)
Jacob Nevins [Sat, 20 Jan 2007 16:14:13 +0000 (16:14 +0000)]
Mention more versions of Windows. (Not Vista, yet.)

[originally from svn r7127]

17 years agoDon't use C99 mid-block declarations and don't do arithmetic on void *.
Ben Harris [Sat, 20 Jan 2007 14:13:57 +0000 (14:13 +0000)]
Don't use C99 mid-block declarations and don't do arithmetic on void *.
This helps with compilations on ancient Sun compilers.

[originally from svn r7126]

17 years agoMove README.txt into windows subdir.
Jacob Nevins [Fri, 19 Jan 2007 14:33:56 +0000 (14:33 +0000)]
Move README.txt into windows subdir.
It's specific to the Windows installer, so it seems unnecessarily confusing to
have it in the top level of the source distribution alongside README.

[originally from svn r7125]

17 years agoFlag user cancellation of authentication as a clean exit, so that it
Simon Tatham [Wed, 17 Jan 2007 18:38:45 +0000 (18:38 +0000)]
Flag user cancellation of authentication as a clean exit, so that it
will close the window even in `close window only on clean exit'
mode. Also, while I'm here, arrange a suitable exit code for
"exit-signal".

[originally from svn r7121]

17 years agoUpdate WINVER to 0x500 to avoid build failures from Jacob's
Simon Tatham [Tue, 16 Jan 2007 21:32:02 +0000 (21:32 +0000)]
Update WINVER to 0x500 to avoid build failures from Jacob's
FlashWindow changes. Also fiddle with the <multimon.h> include,
which was subtly broken in turn by that.

[originally from svn r7120]

17 years agoAt least, I have the technology to fix `beepind-win2k'.
Jacob Nevins [Tue, 16 Jan 2007 20:54:58 +0000 (20:54 +0000)]
At least, I have the technology to fix `beepind-win2k'.
Tested on Win98, Win2K, and WinXP.

[originally from svn r7119]
[this svn revision also touched putty-wishlist]

17 years agoAdd more ifdefs to make uxser.c compile on OS X.
Simon Tatham [Tue, 16 Jan 2007 19:26:24 +0000 (19:26 +0000)]
Add more ifdefs to make uxser.c compile on OS X.

[originally from svn r7118]

17 years agoFold up the `SSH' branch of the treeview by default; it's getting
Simon Tatham [Tue, 16 Jan 2007 18:48:47 +0000 (18:48 +0000)]
Fold up the `SSH' branch of the treeview by default; it's getting
quite big and tends to hide the existence of the `Serial' config
panel.

This is implemented by folding up every branch of depth 2 or more,
which with any luck might turn out to be general enough to carry
over unchanged if other branches start expanding. Then again, we may
have to fiddle with it again when that time comes; who knows?

[originally from svn r7117]

17 years agoI've just realised that the data-logging options only work in PuTTY proper.
Jacob Nevins [Sun, 14 Jan 2007 21:50:44 +0000 (21:50 +0000)]
I've just realised that the data-logging options only work in PuTTY proper.
Document this.

[originally from svn r7108]

17 years agoRemove the loops that close all open fds before running a
Simon Tatham [Sun, 14 Jan 2007 13:44:07 +0000 (13:44 +0000)]
Remove the loops that close all open fds before running a
subprocess. They were intended to make sure the child process didn't
inherit anything embarrassing or inconvenient from us, such as the
master end of its own pty, but now we instead do this by making sure
to set all our own fds to not-FD_CLOEXEC on creation. This should
fix Debian bug #357520.

(This doesn't seem to work _quite_ right in uxproxy.c's invocation
of a local proxy command: both ends of a GTK internal pipe end up in
the child process's fd space. This appears to be another GTK 1 bug,
inasmuch as it goes away when I build with Colin's preliminary GTK 2
patch; for the moment I think leaving that pipe lying around is
probably less harmful than hampering the proxy process's ability to
use extra fds by prior arrangement with PuTTY's parent process.)

[originally from svn r7107]

17 years agoExperimental fix for `psftp-hang'. (Experimental only in that I haven't thought
Jacob Nevins [Fri, 12 Jan 2007 23:35:46 +0000 (23:35 +0000)]
Experimental fix for `psftp-hang'. (Experimental only in that I haven't thought
about it very hard; it's a plausible fix for the observed cause of the extreme
CPU usage, being that we were asking to be notified of Windows messages and
then not dealing with them, plausibly leading to a loop. Works for me,
anyway.)

[originally from svn r7098]

17 years agoRemove redundant sentence.
Jacob Nevins [Fri, 12 Jan 2007 20:00:32 +0000 (20:00 +0000)]
Remove redundant sentence.

[originally from svn r7097]

17 years agoMiscellaneous updates.
Jacob Nevins [Wed, 10 Jan 2007 00:54:08 +0000 (00:54 +0000)]
Miscellaneous updates.

[originally from svn r7090]

17 years agoAccording to Frank Dijcks, this cast makes OpenWatcom happier.
Jacob Nevins [Wed, 10 Jan 2007 00:46:45 +0000 (00:46 +0000)]
According to Frank Dijcks, this cast makes OpenWatcom happier.

[originally from svn r7089]

17 years agoVarious SSH-related things were appearing in the PuTTYtel configuration dialog,
Jacob Nevins [Wed, 10 Jan 2007 00:16:53 +0000 (00:16 +0000)]
Various SSH-related things were appearing in the PuTTYtel configuration dialog,
probably since the addition of the serial backend. Use a more robust check for
SSH support.

[originally from svn r7088]

17 years agoMinGW needs an extra symbol _WIN32_IE defined to a particular value before
Jacob Nevins [Tue, 9 Jan 2007 23:47:15 +0000 (23:47 +0000)]
MinGW needs an extra symbol _WIN32_IE defined to a particular value before
it'll let you see an identifier (SHGFP_TYPE_CURRENT) referenced since r7082.
(Actually, you need a pretty recent w32api before it's there at all.)

Morally, this should be defined for all toolchains, not just MinGW/Cygwin, but  I'll leave that to people who have those toolchains.
<http://msdn2.microsoft.com/en-us/library/aa383745.aspx>

Also add some other comments on our use of this API (since it's a horrible one
that I suspect will come back and haunt us...)

[originally from svn r7087]
[r7082 == dbbd6eb5ecdad5eb0b010e9ad4997fac53356189]
[this svn revision also touched putty-wishlist]

17 years agoGet rid of all the MSVC warnings.
Simon Tatham [Tue, 9 Jan 2007 18:24:07 +0000 (18:24 +0000)]
Get rid of all the MSVC warnings.

[originally from svn r7086]

17 years agoFix `puttygen-unix-perms': f_open(), PuTTY's wrapper on fopen, now
Simon Tatham [Tue, 9 Jan 2007 18:14:30 +0000 (18:14 +0000)]
Fix `puttygen-unix-perms': f_open(), PuTTY's wrapper on fopen, now
takes a third argument which is TRUE if the file is being opened for
writing and wants to be created in such a way that it's readable
only to the owner. This is used when saving private keys.

While I'm here, I also use this option when writing session logs, on
the general principle that they probably contain _something_
sensitive.

The new argument is only supported on Unix, for the moment. (I think
writing owner-accessible-only files is the default on Windows.)

[originally from svn r7084]

17 years agoFix `win-randseed-location': use SHGetFolderPath() to find the
Simon Tatham [Tue, 9 Jan 2007 18:05:17 +0000 (18:05 +0000)]
Fix `win-randseed-location': use SHGetFolderPath() to find the
Application Data directory in preference to the old-fashioned
attempt to find the user's home directory, and use the _local-
machine_ Application Data directory in preference even to that.

SHGetFolderPath() is called via GetProcAddress, so this degrades
gracefully on old Windowses. (Tested myself on Win95.)

As part of this change, we now search for a location for the seed
file separately for reading and writing, so that installing the new
PuTTY should cause a seamless migration as the old seed file is read
from the old location and then a new one written to the new location.

`putty -cleanup' attempts to delete the seed file from _all_
affected locations.

Naturally, a user-specified seed file path in the Registry still
takes priority over all other means of finding the location.

[originally from svn r7082]

17 years agoThe remaining issue in `win-askappend-multi' appears to have been
Simon Tatham [Mon, 8 Jan 2007 19:38:39 +0000 (19:38 +0000)]
The remaining issue in `win-askappend-multi' appears to have been
caused by the MessageBox() internal message loop eating WinSock
FD_READ notifications, which then don't reappear afterwards because
you have to explicitly prod a socket in order to get a repeat
notification on it.

Hence, here's a piece of infrastructure which seems to sort it out:
a new winnet.c function called socket_reselect_all(), whose function
is to go through all currently active sockets and re-run
WSAAsyncSelect() on them, causing repeat notifications for anything
we might have missed. I call this after every call to MessageBox(),
and that seems to solve the problem.

(The problem was actually masked in very recent revisions, probably
by the reinstatement of pending_netevent in r7071. However, I don't
believe that was a complete fix. This should be.)

[originally from svn r7077]
[r7071 == 57a763b0ec55b84d6a515e6d860759898d648869]

17 years agoHave one call to from_backend() per call to do_telnet_read(),
Simon Tatham [Mon, 8 Jan 2007 18:54:49 +0000 (18:54 +0000)]
Have one call to from_backend() per call to do_telnet_read(),
instead of the previous rate of one per character. In `Flush log
file frequently' mode, the latter was causing excessive slowdown due
to fflush()ing once per byte.

[originally from svn r7076]

17 years agoFix ssh2-cisco-pw-pad by reverting r5122. However, I've kept the
Simon Tatham [Sun, 7 Jan 2007 14:30:24 +0000 (14:30 +0000)]
Fix ssh2-cisco-pw-pad by reverting r5122. However, I've kept the
ability to easily re-enable the r5122 behaviour, in case we need to
conditionally switch between the two at a later date.

[originally from svn r7073]
[r5122 == 8a20515844a0cc83272c4f72c5eb01615f70a196]
[this svn revision also touched putty-wishlist]

17 years agoGreater leniency when importing private key files: accept both CRLF
Simon Tatham [Sun, 7 Jan 2007 14:20:28 +0000 (14:20 +0000)]
Greater leniency when importing private key files: accept both CRLF
and LF, and don't object if the final line of the key lacks a
newline. Also, while I'm here, switch to using fgetline() throughout
so as not to have to do nasty buffer-size ad-hockery.

[originally from svn r7072]

17 years agoReinstate RDB's pending_netevent mechanism, which was removed in
Simon Tatham [Sun, 7 Jan 2007 12:40:21 +0000 (12:40 +0000)]
Reinstate RDB's pending_netevent mechanism, which was removed in
r4906 in the process of adding the new timing code. It seems to have
been what was previously preventing spew-lockup, and still seems to
prevent it now I've put it back in.

[originally from svn r7071]
[r4906 == 7ecf13564a8d716000ce78146d1aaf4422432a4f]
[this svn revision also touched putty-wishlist]

17 years agoTweak the icon script, and the generated icons, to more closely
Simon Tatham [Sun, 7 Jan 2007 10:17:12 +0000 (10:17 +0000)]
Tweak the icon script, and the generated icons, to more closely
match the original icons. (Apparently I managed to introduce errors
while transcribing the originals for detailed analysis.)

While I'm at it, add the obviously useful `make install' target in
icons/Makefile, and fix the svn:ignore property on the icons
directory.

[originally from svn r7068]

17 years agoI think this change to Recipe was accidentally omitted from r7064.
Jacob Nevins [Sat, 6 Jan 2007 20:01:30 +0000 (20:01 +0000)]
I think this change to Recipe was accidentally omitted from r7064.

[originally from svn r7065]
[r7064 == 334ef0824cdafc77f184137c3b6fca0f9c0342cf]

17 years agoNo, I tell a lie: GTK 1 _does_ support icons, at least partially. Ooh.
Simon Tatham [Sat, 6 Jan 2007 18:27:00 +0000 (18:27 +0000)]
No, I tell a lie: GTK 1 _does_ support icons, at least partially. Ooh.

[originally from svn r7064]

17 years agoShiny new script which constructs the various icons for the PuTTY
Simon Tatham [Sat, 6 Jan 2007 18:15:35 +0000 (18:15 +0000)]
Shiny new script which constructs the various icons for the PuTTY
suite. In a dramatic break with tradition, I'm actually checking in
the resulting icon files as well as the script that generates them,
because the script requires Python and ImageMagick and I don't think
it's reasonable to require that much extra infrastructure on
everyone checking out from Subversion.

The new icons should be _almost_ indistinguishable from the old
ones, at least at the 32x32 resolution. The immediately visible
change is that all the icons now come in 16x16, 32x32 and 48x48
formats, in both 16 colours and monochrome, instead of an ad-hoc
mixture of whichever ones I could be bothered to draw.

The same code can also be adapted to generate icons for the GTK port
(although icons for the running programs don't seem to be supported
by GTK 1 - another reason to upgrade to GTK 2!).

[originally from svn r7063]

17 years agoFrancois L'Archeveque spotted that the variable `winsock2_module'
Simon Tatham [Fri, 5 Jan 2007 18:43:58 +0000 (18:43 +0000)]
Francois L'Archeveque spotted that the variable `winsock2_module'
only exists when compiling for IPv6, so we shouldn't try assigning
to it the rest of the time.

[originally from svn r7059]

17 years agoIt's a new year.
Jacob Nevins [Mon, 1 Jan 2007 21:19:14 +0000 (21:19 +0000)]
It's a new year.

[originally from svn r7048]
[this svn revision also touched putty-website,puzzles]

17 years agoPatch inspired by one from Daniel Silverstone in Debian bug #229232:
Jacob Nevins [Sun, 31 Dec 2006 15:33:33 +0000 (15:33 +0000)]
Patch inspired by one from Daniel Silverstone in Debian bug #229232:

We now have an option where a remote window title query returns a well-formed
response containing the empty string. This should keep stop any server-side
application that was expecting a response from hanging, while not permitting
the response to be influenced by an attacker.

We also retain the ability to stay schtum. The existing checkbox has thus
grown into a set of radio buttons.

I've changed the default to the "empty string" response, even in the backward-
compatibility mode of loading old settings, which is a change in behaviour;
any users who want the old behaviour back will have to explicitly select it. I
think this is probably the Right Thing. (The only drawback I can think of is
that an attacker could still potentially use the relevant fixed strings for
mischief, but we already have other, similar reports.)

[originally from svn r7043]

17 years agoPatch from Colin Watson intended to give a clean Unix compile with GCC 4.
Jacob Nevins [Sat, 30 Dec 2006 23:00:14 +0000 (23:00 +0000)]
Patch from Colin Watson intended to give a clean Unix compile with GCC 4.
(Since we choose to compile with -Werror, this is particularly important.)

I haven't yet checked that the resulting source actually compiles cleanly with
GCC 4, hence not marking `gcc4-warnings' as fixed just yet.

[originally from svn r7041]

17 years agoUse va_copy() where available. This should fix a segfault in vsnprintf()
Jacob Nevins [Fri, 29 Dec 2006 16:38:52 +0000 (16:38 +0000)]
Use va_copy() where available. This should fix a segfault in vsnprintf()
on AMD 64 Linux.
(This has been sitting in my checkout for ages and hasn't obviously caused
any trouble -- I think I was waiting to get round to trying it with VC6, which
I haven't yet. There are some notes in comments on further tweaks that could
be made.)

[originally from svn r7035]

17 years agoColin Watson points out that there was no need for me to write the
Simon Tatham [Fri, 29 Dec 2006 14:35:34 +0000 (14:35 +0000)]
Colin Watson points out that there was no need for me to write the
custom Panels container widget for the PuTTY config box, since the
perfectly standard GtkNotebook does the same job. Hence, let's
remove Panels completely in favour of doing it the proper way.

[originally from svn r7034]

17 years agoAdd a NO_HTMLHELP option, and enable it by default in the Cygwin Makefile,
Jacob Nevins [Thu, 28 Dec 2006 20:56:01 +0000 (20:56 +0000)]
Add a NO_HTMLHELP option, and enable it by default in the Cygwin Makefile,
since even the latest version of w32api (3.6) shows no sign of HTMLHelp
support.

(This touches mkfiles.pl because that's where the details of what Cygwin
doesn't support are kept currently. This may be deliberate, so I haven't
changed it.)

[originally from svn r7032]

17 years agoI'm not sure why I added htmlhelp.lib to the PuTTY link lines in
Simon Tatham [Thu, 28 Dec 2006 15:47:53 +0000 (15:47 +0000)]
I'm not sure why I added htmlhelp.lib to the PuTTY link lines in
r7000. I was probably half asleep. Actually, it's completely
unnecessary to bind to it at link time, because we load it at run
time in order to continue working as before on Win95. So I'm
removing it again.

[originally from svn r7030]
[r7000 == 1dac1bc911bd76446f19c48fbca9c868c33f07ca]

17 years agoNearly forgot: add the .CHM to the PuTTY installer. This involves
Simon Tatham [Thu, 28 Dec 2006 10:39:56 +0000 (10:39 +0000)]
Nearly forgot: add the .CHM to the PuTTY installer. This involves
making the manual shortcut in the Start menu point to one or other
of the two help files depending on the version of Windows;
fortunately Inno Setup has no difficulty doing that.

[originally from svn r7028]

17 years ago`make mostlyclean', to remove everything directly Halibut-generated
Simon Tatham [Thu, 28 Dec 2006 10:38:46 +0000 (10:38 +0000)]
`make mostlyclean', to remove everything directly Halibut-generated
but not the CHM. It'll come in useful during the release process.

[originally from svn r7027]

17 years agoAdd some CHM-related stuff to the release checklist. Don't want to
Simon Tatham [Sun, 24 Dec 2006 16:25:30 +0000 (16:25 +0000)]
Add some CHM-related stuff to the release checklist. Don't want to
forget about it when the time comes.

[originally from svn r7012]

17 years agoAfter discussion with Jeroen Massar, here's a patch (mostly his)
Simon Tatham [Sat, 23 Dec 2006 09:04:27 +0000 (09:04 +0000)]
After discussion with Jeroen Massar, here's a patch (mostly his)
which we think fixes the vista-ipv6 problem.

[originally from svn r7007]

17 years agoMinor style tweaks for the CHM.
Simon Tatham [Tue, 19 Dec 2006 10:28:44 +0000 (10:28 +0000)]
Minor style tweaks for the CHM.

[originally from svn r7002]

17 years agoSort out line-endings on new file.
Jacob Nevins [Sun, 17 Dec 2006 17:46:12 +0000 (17:46 +0000)]
Sort out line-endings on new file.

[originally from svn r7001]

17 years agoInitial support for HTML Help. All the ad-hoc help-file finding code
Simon Tatham [Sun, 17 Dec 2006 11:16:07 +0000 (11:16 +0000)]
Initial support for HTML Help. All the ad-hoc help-file finding code
and various calls to WinHelp() have been centralised into a new file
winhelp.c, which in turn has been modified to detect a .CHM file as
well as .HLP and select between them as appropriate. It explicitly
tries to load HHCTRL.OCX and use GetProcAddress, meaning that it
_should_ still work correctly on pre-HTML-Help platforms, falling
gracefully back to WinHelp, but although I tested this by
temporarily renaming my own HHCTRL.OCX I haven't yet been able to
test it on a real HTML-Help-free platform.

Also in this checkin: a new .but file and docs makefile changes to
make it convenient to build the sources for a .CHM. As yet, owing to
limitations of Halibut's CHM support, I'm not able to write a .CHM
directly, more's the pity.

[originally from svn r7000]

17 years agoSet FD_CLOEXEC in a little convenience function that does the right thing
Ben Harris [Sat, 9 Dec 2006 15:44:31 +0000 (15:44 +0000)]
Set FD_CLOEXEC in a little convenience function that does the right thing
with F_GETFD and F_SETFD.

[originally from svn r6978]

17 years agoCorrect an embarrassingly wrong comment.
Simon Tatham [Tue, 28 Nov 2006 21:51:54 +0000 (21:51 +0000)]
Correct an embarrassingly wrong comment.

[originally from svn r6926]

17 years agoI've just discovered that using the saved sessions menu from Unix
Simon Tatham [Thu, 23 Nov 2006 14:32:11 +0000 (14:32 +0000)]
I've just discovered that using the saved sessions menu from Unix
PuTTY causes the child process to inherit a lot of socket fds from
its parent, which is a pain if one of them then ends up holding open
a listening socket which the parent was using for port forwarding
after the parent itself is dead.

Therefore, this checkin sprinkles FD_CLOEXEC throughout the Unix
platform directory wherever there looks like being a long-lived fd.

[originally from svn r6917]

17 years agoReinstate as much of the Windows font-linking behaviour as I can
Simon Tatham [Sat, 18 Nov 2006 15:10:48 +0000 (15:10 +0000)]
Reinstate as much of the Windows font-linking behaviour as I can
easily manage, by adopting a hybrid approach to Unicode text
display. The old approach of simply calling ExtTextOutW provided
font linking without us having to lift a finger, but didn't do the
right thing when it came to bidirectional or Arabic-shaped text.
Arabeyes' replacement exact_textout() supported the latter, but
turned out to break the former (with no warning from the Windows API
documentation, so it's not their fault).

So now I've got a second wrapper layer called general_textout(),
which splits the input string into substrings based on bidi
character class. Any character liable to cause bidi or shaping
behaviour if fed straight to ExtTextOutW is instead fed through
Arabeyes' exact_textout(), but the rest is fed straight to
ExtTextOutW as it used to be.

The effect appears to be that font linking is restored for all
characters _except_ Arabic and other bidi scripts, which means in
particular that we are no longer in a state of regression over 0.57.
(0.57 would have done font linking on Arabic as well, but would also
have misbidied it, so we've merely exchanged one failure mode for
another slightly less harmful one in that situation.)

[originally from svn r6910]

17 years agoChris Boucher spotted that after "-nc" was added (r6823), cfg->ssh_nc_host
Jacob Nevins [Wed, 15 Nov 2006 23:42:22 +0000 (23:42 +0000)]
Chris Boucher spotted that after "-nc" was added (r6823), cfg->ssh_nc_host
was not always initialised, which could lead to spurious attempts to open
a bogus channel (typically refused: "FATAL ERROR: Server refused to open
a direct-tcpip channel"). Fixed.

[originally from svn r6907]
[r6823 == 631b4948073922c2618441fb374c7e6fc22bd1d8]

17 years ago(Config).remote_cmd2[512] was added in r1208, but it wasn't used then and isn't
Jacob Nevins [Wed, 15 Nov 2006 23:12:20 +0000 (23:12 +0000)]
(Config).remote_cmd2[512] was added in r1208, but it wasn't used then and isn't
now, so presumably never has been. Remove.

[originally from svn r6906]
[r1208 == ff9a038cdda2703b96f4a79396efe5b7b8e0aec2]

17 years agopublickeyfile now an RFC
Jacob Nevins [Wed, 15 Nov 2006 12:56:48 +0000 (12:56 +0000)]
publickeyfile now an RFC

[originally from svn r6905]
[this svn revision also touched putty-website]

17 years agoLink to faq-cleanup from faq-settings.
Jacob Nevins [Wed, 15 Nov 2006 11:48:07 +0000 (11:48 +0000)]
Link to faq-cleanup from faq-settings.

[originally from svn r6904]

17 years agoThere's been an increase in people posting non-SSH PuTTY-related questions
Jacob Nevins [Wed, 8 Nov 2006 21:15:30 +0000 (21:15 +0000)]
There's been an increase in people posting non-SSH PuTTY-related questions
to comp.security.ssh, posting queries that are clearly about PuTTY to
newsgroups without actually mentioning PuTTY, and so on. They may have been
directed there by this document :( Add a futile attempt to instil a sense of
etiquette.

[originally from svn r6895]

17 years agoAdministrivia: most SSH-2 specs are no longer drafts.
Jacob Nevins [Wed, 8 Nov 2006 00:55:13 +0000 (00:55 +0000)]
Administrivia: most SSH-2 specs are no longer drafts.

[originally from svn r6890]

17 years agoTiny comment fix.
Jacob Nevins [Tue, 31 Oct 2006 16:59:56 +0000 (16:59 +0000)]
Tiny comment fix.

[originally from svn r6885]

17 years agoSpotted by Tim Kosse: we were returning an incorrect path in canonify() when
Jacob Nevins [Sun, 22 Oct 2006 20:19:55 +0000 (20:19 +0000)]
Spotted by Tim Kosse: we were returning an incorrect path in canonify() when
we couldn't get any sense out of the server.

[originally from svn r6877]

17 years agoMinor semantic tweak to bug-compatibility modes: make
Jacob Nevins [Sun, 22 Oct 2006 19:51:28 +0000 (19:51 +0000)]
Minor semantic tweak to bug-compatibility modes: make
BUG_NEEDS_SSH1_PLAIN_PASSWORD do exactly what it says on the tin, independent
of whether BUG_CHOKES_ON_SSH1_IGNORE is set.

This is invisible in the default configuration, as all servers marked as having
the second bug have the first one too, but it would allow one to manually
configure PuTTY to cope with a SSH-1 server that got upset by ignore messages
during authentication, but was fine with their use as keepalives.

[originally from svn r6876]

17 years agoDisable a bunch of undesirable termios flags. ICRNL, in particular,
Simon Tatham [Tue, 3 Oct 2006 17:16:26 +0000 (17:16 +0000)]
Disable a bunch of undesirable termios flags. ICRNL, in particular,
is liable to have been set on serial ports previously used as
terminal devices, and definitely wants not to be set on serial ports
being used for callout.

[originally from svn r6865]

17 years agoIXON and IXOFF belong in _iflag_, not cflag! While I'm here, be more
Simon Tatham [Mon, 2 Oct 2006 20:52:57 +0000 (20:52 +0000)]
IXON and IXOFF belong in _iflag_, not cflag! While I'm here, be more
reliable in clearing of RTS/CTS flags.

[originally from svn r6864]

17 years agoFix breakage of `Restart Session' in r6802. When restarting the
Simon Tatham [Thu, 21 Sep 2006 11:48:32 +0000 (11:48 +0000)]
Fix breakage of `Restart Session' in r6802. When restarting the
session, we were clearing the new session_closed flag, but failing
to clear must_close_session; with that set, the session was being
opened but immediately re-closed.

[originally from svn r6857]
[r6802 == 0dcdb6c3c19ecae20dcc6f947169b3c98bcbae9d]

17 years agoNote that the dynamic-tunnel proxy does not support UDP, since we get asked
Jacob Nevins [Fri, 15 Sep 2006 14:44:21 +0000 (14:44 +0000)]
Note that the dynamic-tunnel proxy does not support UDP, since we get asked
about this quite often.

[originally from svn r6855]

17 years agoCSI 3 J now clears the scrollback, as in xterm.
Jacob Nevins [Tue, 5 Sep 2006 22:08:00 +0000 (22:08 +0000)]
CSI 3 J now clears the scrollback, as in xterm.

[originally from svn r6847]
[this svn revision also touched putty-wishlist]

17 years agoI seem to have slightly funted Plink's display of banners etc in r6437, oops.
Jacob Nevins [Tue, 5 Sep 2006 21:41:38 +0000 (21:41 +0000)]
I seem to have slightly funted Plink's display of banners etc in r6437, oops.
Fixed.

[originally from svn r6846]
[r6437 == 8719f92c1426609de7ead4a490a15d1d18875f53]

17 years agoSlight change to password expiry UI for the benefit of Cisco servers, which
Jacob Nevins [Tue, 5 Sep 2006 21:39:30 +0000 (21:39 +0000)]
Slight change to password expiry UI for the benefit of Cisco servers, which
are as usual slightly odd.

[originally from svn r6845]

17 years agoSupport for an alternative mechanism for displaying wide characters
Simon Tatham [Sun, 3 Sep 2006 14:31:34 +0000 (14:31 +0000)]
Support for an alternative mechanism for displaying wide characters
under X: instead of having two separate fixed-width fonts one of
which is twice the width of the other, you can instead have a single
font in which some characters are twice as wide as others.

This is implemented very simply: if you specify a wide font, it will
be used for wide characters, and if you don't then the normal font
will be used for wide characters (so they'd better _be_ wide in that
font, or there'll be trouble).

I got this idea from Jed, whose latest version supports UTF-8 and
requires a font of this type. If there are going to be X fonts like
that kicking around, there will doubtless be people who want to use
them.

[originally from svn r6844]

17 years agoAdd a mini-rant to the top comment explaining why threads are
Simon Tatham [Sun, 3 Sep 2006 12:55:16 +0000 (12:55 +0000)]
Add a mini-rant to the top comment explaining why threads are
required. (I just tried getting rid of them; it worked fine for
serial ports, but not for anything else. The Windows I/O API sucks.)

[originally from svn r6843]

17 years agoUpdates for today's changes:
Jacob Nevins [Tue, 29 Aug 2006 21:46:56 +0000 (21:46 +0000)]
Updates for today's changes:
 - changes to Logging panel
 - breaks in serial backend
(Plus, completely unrelated, an index term entry related to port forwarding
which seems to have been sitting around for ages, possibly waiting for me to
think about `see also' index terms in Halibut.)

[originally from svn r6836]

17 years agoNew logging mode, which records the exact bytes sent over the wire
Simon Tatham [Tue, 29 Aug 2006 19:07:11 +0000 (19:07 +0000)]
New logging mode, which records the exact bytes sent over the wire
in an SSH connection _in addition_ to the decrypted packets. This
will hopefully come in useful for debugging wire data corruption
issues: you can strace the server, enable this mode in the client,
and compare the sent and received data.

I'd _like_ to have this mode also log Diffie-Hellman private
exponents, session IDs, encryption and MAC keys, so that the
resulting log file could be used to independently verify the
correctness of all cryptographic operations performed by PuTTY.
However, I haven't been able to convince myself that the security
implications are acceptable. (It doesn't matter that this
information would permit an attacker to decrypt the session, because
the _already_ decrypted session is stored alongside it in the log
file. And I'm not planning, under any circumstances, to log users'
private keys. But gaining access to the log file while the session
was still running would permit an attacker to _hijack_ the session,
and that's the iffy bit.)

[originally from svn r6835]

17 years agoExplicitly closing logctx on various kinds of error exit means that
Simon Tatham [Tue, 29 Aug 2006 18:50:07 +0000 (18:50 +0000)]
Explicitly closing logctx on various kinds of error exit means that
the log file gets fclosed properly and the critical last few
messages might be recoverable from the log file more often...

[originally from svn r6834]

17 years agoThe Windows HANDLE type, despite being a `void *', does not actually
Simon Tatham [Tue, 29 Aug 2006 18:32:44 +0000 (18:32 +0000)]
The Windows HANDLE type, despite being a `void *', does not actually
behave like a pointer. In particular, the right thing to set a
HANDLE to to indicate that it's invalid is INVALID_HANDLE_VALUE, not
NULL. Crack down on sloppy use of NULL HANDLEs across all Windows
code.

(There is one oddity, which is that {Create,Open}FileMapping are
documented to return a NULL HANDLE instead of INVALID_HANDLE_VALUE
on failure. Shrug. If MS want to be inconsistent, I suppose I have
to live with it.)

[originally from svn r6833]

17 years agoSupport for sending serial breaks, in both the Windows and Unix
Simon Tatham [Tue, 29 Aug 2006 18:20:57 +0000 (18:20 +0000)]
Support for sending serial breaks, in both the Windows and Unix
serial backends.

[originally from svn r6832]

17 years agoInhibit the Serial configuration panel in mid-session if the session
Simon Tatham [Tue, 29 Aug 2006 09:18:09 +0000 (09:18 +0000)]
Inhibit the Serial configuration panel in mid-session if the session
isn't a serial one. In particular, this causes pterm not to fail an
assertion if you select `Change Settings'. Ahem.

[originally from svn r6831]

17 years agoApparently MsgWaitForMultipleObjects doesn't always return the
Simon Tatham [Mon, 28 Aug 2006 19:09:28 +0000 (19:09 +0000)]
Apparently MsgWaitForMultipleObjects doesn't always return the
values one might expect, which means that GetMessage() was
occasionally blocking the process. That appears to be the last of
the annoying data loss issues, so I think the Windows serial back
end actually looks vaguely reliable now. Phew.

[originally from svn r6830]

17 years agoThat OVERLAPPED fix seems to have made flow control useful as well
Simon Tatham [Mon, 28 Aug 2006 18:36:11 +0000 (18:36 +0000)]
That OVERLAPPED fix seems to have made flow control useful as well
(presumably Windows's serial buffer is actually _filling up_,
causing an XOFF to be sent, now that my dodgy I/O code isn't causing
it to leak). So I think I'll switch the default flow control to
XON/XOFF, since it actually seems to do something now.

[originally from svn r6829]

17 years agoEep! Next bit flag after 1 and 2 is _4_, not 3. Perhaps it's time I
Simon Tatham [Mon, 28 Aug 2006 18:27:54 +0000 (18:27 +0000)]
Eep! Next bit flag after 1 and 2 is _4_, not 3. Perhaps it's time I
stopped coding and went and sat down quietly and tried not to touch
anything for a while.

[originally from svn r6828]

17 years agoReading 4K at a time from a serial port turns out to be a bit
Simon Tatham [Mon, 28 Aug 2006 18:26:50 +0000 (18:26 +0000)]
Reading 4K at a time from a serial port turns out to be a bit
unfriendly in an interactive session, because at 19200 baud it takes
nearly two seconds to receive that much data, and as long as the
data is flowing continuously Windows waits until it has a full
buffer. So here's another annoying flag in the winhandl API, which
restricts reads to length 1 so that serial output shows up as it
appears.

(I tried this yesterday, but without the OVERLAPPED fix in r6826 it
behaved very erratically. It now seems solid.)

[originally from svn r6827]
[r6826 == 2aedc83f8dce7811704a28fa7bb1f81e79f653b8]

17 years agoApparently it helps for an OVERLAPPED structure to contain a valid
Simon Tatham [Mon, 28 Aug 2006 18:16:49 +0000 (18:16 +0000)]
Apparently it helps for an OVERLAPPED structure to contain a valid
event handle. This seems to have fixed _some_, but not all, of the
curious data loss issues in the Windows serial backend.

[originally from svn r6826]

17 years agoMinor tweaks to -nc:
Jacob Nevins [Mon, 28 Aug 2006 17:47:43 +0000 (17:47 +0000)]
Minor tweaks to -nc:
 - log host:port in event log
 - add -nc to Plink usage message

[originally from svn r6825]

17 years agoMissed a couple of instances of cfg_launchable().
Simon Tatham [Mon, 28 Aug 2006 17:41:02 +0000 (17:41 +0000)]
Missed a couple of instances of cfg_launchable().

[originally from svn r6824]

17 years agoNew command-line option in Plink (and PuTTY, though it's less useful
Simon Tatham [Mon, 28 Aug 2006 15:12:37 +0000 (15:12 +0000)]
New command-line option in Plink (and PuTTY, though it's less useful
there): `plink host -nc host2:port' causes the SSH connection's main
channel to be replaced with a direct-tcpip connection to the
specified destination. This feature is mainly designed for use as a
local proxy: setting your local proxy command to `plink %proxyhost
-nc %host:%port' lets you tunnel SSH over SSH with a minimum of
fuss. Works on all platforms.

[originally from svn r6823]

17 years agoSerial back end for Unix. Due to hardware limitations (no Linux box
Simon Tatham [Mon, 28 Aug 2006 14:29:02 +0000 (14:29 +0000)]
Serial back end for Unix. Due to hardware limitations (no Linux box
I own has both an X display and a working serial port) I have been
unable to give this the full testing it deserves; I've managed to
demonstrate the basic functionality of Unix Plink talking to a
serial port, but I haven't been able to test the GTK front end. I
have no reason to think it will fail, but I'll be more comfortable
once somebody has actually tested it.

[originally from svn r6822]

17 years ago... and here's the rest of r6820. Ahem.
Simon Tatham [Mon, 28 Aug 2006 13:08:50 +0000 (13:08 +0000)]
... and here's the rest of r6820. Ahem.

[originally from svn r6821]
[r6820 == ae83801b2891ffb10923be0b954cc31f3ad0c607]

17 years agoBecause not all OSes will support the same set of serial port
Simon Tatham [Mon, 28 Aug 2006 13:08:15 +0000 (13:08 +0000)]
Because not all OSes will support the same set of serial port
options, here's a slight change to the API of ser_setup_config_box()
to make it filter its parity and flow control options using
platform-supplied bit masks.

[originally from svn r6820]

17 years agoFix small event log bug.
Simon Tatham [Mon, 28 Aug 2006 11:33:51 +0000 (11:33 +0000)]
Fix small event log bug.

[originally from svn r6819]

17 years agoForgot to initialise serial->bufsize to zero.
Simon Tatham [Mon, 28 Aug 2006 11:32:12 +0000 (11:32 +0000)]
Forgot to initialise serial->bufsize to zero.

[originally from svn r6818]

17 years agoFix line endings (svn:eol-style properties and actual CRs).
Simon Tatham [Mon, 28 Aug 2006 11:13:56 +0000 (11:13 +0000)]
Fix line endings (svn:eol-style properties and actual CRs).

[originally from svn r6817]

17 years agoSupport for Windows PuTTY connecting straight to a local serial port
Simon Tatham [Mon, 28 Aug 2006 10:35:12 +0000 (10:35 +0000)]
Support for Windows PuTTY connecting straight to a local serial port
in place of making a network connection. This has involved a couple
of minor infrastructure changes:
 - New dlg_label_change() function in the dialog.h interface, which
   alters the label on a control. Only used, at present, to switch
   the Host Name and Port boxes into Serial Line and Speed, which
   means that any platform not implementing serial connections (i.e.
   currently all but Windows) does not need to actually do anything
   in this function. Yet.
 - New small piece of infrastructure: cfg_launchable() determines
   whether a Config structure describes a session ready to be
   launched. This was previously determined by seeing if it had a
   non-empty host name, but it has to check the serial line as well
   so there's a centralised function for it. I haven't gone through
   all front ends and arranged for this function to be used
   everywhere it needs to be; so far I've only checked Windows.
 - Similarly, cfg_dest() returns the destination of a connection
   (host name or serial line) in a text format suitable for putting
   into messages such as `Unable to connect to %s'.

[originally from svn r6815]

17 years agoNow that Local proxy type exists on both Unix and Windows, document it and
Jacob Nevins [Sun, 27 Aug 2006 11:55:30 +0000 (11:55 +0000)]
Now that Local proxy type exists on both Unix and Windows, document it and
associated stuff.

[originally from svn r6814]

17 years agoGrow some nasty warts on the side of winhandl.c, in preparation for
Simon Tatham [Sun, 27 Aug 2006 10:00:36 +0000 (10:00 +0000)]
Grow some nasty warts on the side of winhandl.c, in preparation for
a serial port backend:
 - In order to do simultaneous reading and writing on the same
   HANDLE, you must enable overlapped access and pass an OVERLAPPED
   structure to each ReadFile and WriteFile call. This would make
   sense if it were an optional thing I could do if I wanted to do
   the reading and writing in the same thread, but making it
   mandatory even if I'm doing them in _different_ threads is just
   annoying and arbitrary.
 - Serial ports occasionally return length 0 from ReadFile, for no
   particularly good reason. Fortunately serial ports also don't
   have a real EOF condition to speak of, so ignoring EOFs is
   actually a viable response in spite of sounding utterly gross.
Hence, handle_{input,output}_new() now accept a flags parameter,
which includes a flag to enable the OVERLAPPED bureaucracy and a
flag to cause EOFs to be ignored on input handles. The current
clients of winhandl.c do not use either of these.

[originally from svn r6813]

17 years agoRemove spurious #include.
Simon Tatham [Sun, 27 Aug 2006 09:53:34 +0000 (09:53 +0000)]
Remove spurious #include.

[originally from svn r6812]