1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00
Commit Graph

234 Commits

Author SHA1 Message Date
Simon Tatham
201c2c295b Patch from Gert-Jan Vons: create an event handle to go in the
OVERLAPPED structure in output threads, as we already do for input
threads. This apparently sorts out a hanging issue with serial ports
when trying to do simultaneous read and write, because (GJV says,
and it sounds plausible to me) in the absence of that event object
Windows signals the file handle itself to notify GetOverlappedResult
that it can return - and since the file handle might be being
signalled by a read operation instead, that leads to ambiguity.
Using an explicit event object in both directions means Windows
always knows which way the data is going.

Also a trivial fix in handle_output_new(), which was referencing the
wrong element of a union due to a copy and paste error. (Since the
result was address-taken and cast to void *, this wasn't a
functional error, but it was conceptually wrong.)

[originally from svn r8410]
2009-01-12 20:41:28 +00:00
Simon Tatham
75913faf82 Weaken the assertion in general_textout(). It was failing in the
case of double-width text (ESC # 3, ESC # 4, ESC # 6), because the
string passed to it was not truncated to the same width as the
clipping rectangle. (In fact, it _can't_ reliably be, in the case
where the window width is odd.) So instead we just assert that we
managed to _at least_ fill the clipping rectangle, not that we
exactly filled it.

The problem is easily reproduced by sending ESC # 8 (fill the screen
with Es) followed by ESC # 3. It doesn't typically happen, though,
if you _manually_ fill the screen with Es, because in that case
PuTTY's terminal buffer ends up being filled with CSET_ACP | 'E' or
similar, which means that general_textout() never gets called
because one of the other branches of do_text_internal() does the
work instead. ESC # 8 will fill the terminal buffer with genuine
_Unicode_ 'E' characters, which exercises the failing code path.

[originally from svn r8403]
2009-01-09 18:55:45 +00:00
Jacob Nevins
fbbec4c23a Rejig windlg.c:verify_ssh_host_key() to silence a warning.
[originally from svn r8394]
2009-01-06 00:25:07 +00:00
Jacob Nevins
2550cd617c Remove a couple of unused variables.
[originally from svn r8393]
2009-01-06 00:16:35 +00:00
Jacob Nevins
e4027368fd It's a new year (and there have even been checkins).
[originally from svn r8392]
[this svn revision also touched putty-website]
2009-01-05 23:49:19 +00:00
Jacob Nevins
bd5cec280a Add some hard-coded textual literal-IP representations of localhost to
sk_hostname_is_local(), to catch the case where we're doing something like X11
forwarding over SSH through a proxy, and we've thus disabled local lookup of
hostnames.
(I think this is what's behind the report in
<e9a86996-5dc2-4428-9b0c-c65693ca6351@m32g2000hsf.googlegroups.com>
in comp.security.ssh, although I'd like to know more of the circumstances.)

[originally from svn r8385]
2009-01-05 02:45:38 +00:00
Jacob Nevins
5611259468 r8338 broke pasting with Shift-Ins and from the context menu on Windows.
Divert these to use the request_paste() interface.

[originally from svn r8377]
[r8338 == 54835a9838]
2008-12-29 20:04:42 +00:00
Jacob Nevins
8d19864dc9 "Derek" points out that reporting of wheel event coordinates to the host on
Windows was relative to the screen origin, not the window origin. 

[originally from svn r8375]
2008-12-20 19:02:09 +00:00
Ben Harris
5d0d5e0466 Change the Unix version of Ssh_gss_name to be a gss_name_t rather than
void *, and hence eliminate a few casts.  The Windows definition is
unchanged, but I daresay I've managed to stop it compiling nonetheless.

[originally from svn r8359]
2008-12-01 21:18:29 +00:00
Simon Tatham
54835a9838 Move the code that reads the Windows clipboard into a trivial
subthread, so that it won't deadlock if fetching the content of the
clipboard turns out to depend on a network connection forwarded
through PuTTY.

[originally from svn r8338]
2008-11-28 18:28:23 +00:00
Jacob Nevins
62cad154f4 Fix a Windows-specific GSS crash introduced in r8326, which (again) apparently
triggers in failure cases. Patch by Iain Patterson.

[originally from svn r8336]
[r8326 == 81dafd906e]
2008-11-26 14:11:49 +00:00
Simon Tatham
8b45210f63 Have wingss.c include <windows.h> by way of putty.h rather than
directly. Fixes a build failure involving name clashes between
winsock2.h and winsock.h, which had somehow managed to get included
in succession.

[originally from svn r8332]
2008-11-25 18:54:05 +00:00
Jacob Nevins
01a7673ae9 Fixed a PuTTYtel startup assertion failure introduced in r8305.
While I'm here, a cosmetic PuTTYtel change: remove a reference to SSH from the
"logical host name" label in PuTTYtel only.

[originally from svn r8331]
[r8305 == ca6fc3a4da]
2008-11-25 18:43:52 +00:00
Ben Harris
81dafd906e Change how we handle the Ssh_gss_buf type. Previously, we defined it
ourselves, but on Unix then assumed it was compatible with the system's
gss_buffer_desc, which wasn't the case on LP64 systems.  Now, on Unix
we make Ssh_gss_buf into an alias for gss_buffer_desc, though we keep
something similar to the existing behaviour on Windows.  This requires
renaming a couple of the fields in Ssh_gss_buf, and hence fixing all
the references.

Tested on Linux (MIT Kerberos) and Solaris.  Compiled on NetBSD (Heimdal).
Not tested on Windows because neither mingw32 nor winegcc worked out of the
box for me.  I think the Windows changes are all syntactic, though, so
if this compiles it should work no worse than before.

[originally from svn r8326]
2008-11-24 23:44:55 +00:00
Jacob Nevins
dc896b79af New option to allow use of the local OS username for login to the remote side
if we have no better ideas, with UI shamelessly stolen from Quest PuTTY.

Off by default, which effectively reverts the change to using the local
username by default that came in with GSSAPI support in r8138. Anyone wanting
seamless single sign-on will need to set the new option. (The previous
default behaviour was getting in the way in ad-hoc scenarios.)

Note that the PSCP and Unix-Plink behaviour of using the local username by
default have remained unchanged throughout; they are not affected by the new
option. Not sure if that's the Right Thing.

[originally from svn r8324]
[r8138 == de5dd9d65c]
2008-11-24 17:51:42 +00:00
Simon Tatham
ca6fc3a4da Revamp of the local X11 connection code. We now parse X display
strings more rigorously, and then we look up the local X authority
data in .Xauthority _ourself_ rather than delegating to an external
xauth program. This is (negligibly) more efficient on Unix, assuming
I haven't got it wrong in some subtle way, but its major benefit is
that we can now support X authority lookups on Windows as well
provided the user points us at an appropriate X authority file in
the standard format. A new Windows-specific config option has been
added for this purpose.

[originally from svn r8305]
2008-11-17 18:38:09 +00:00
Simon Tatham
59691d28a3 Implement sk_addr_dup().
[originally from svn r8294]
2008-11-08 16:58:55 +00:00
Simon Tatham
6e2501be77 Move out of the SockAddr structure the mutable fields "ai" and
"curraddr", and turn "family" into a macro-derived property of the
other fields. The idea is that this renders SockAddrs immutable once
created, which should open up the possibility of duplicating and
reusing one without having to redo the actual DNS lookup.

I _hope_ I haven't broken anything. The new code architecture
contains several rather dubious-looking operations (namely the
arbitrary choice of the first returned address in functions like
sk_getaddr and sk_address_is_local - what if, for instance, a DNS
lookup returned a local and a non-local address?), but I think they
were functionally just as dubious beforehand and all this change has
done is to make them more obviously so to a reader.

[originally from svn r8293]
2008-11-08 16:45:45 +00:00
Jacob Nevins
50abe3567b Patch from Iain Patterson: fix crash on Windows when GSSAPI auth is attempted
but fails for some reason (such as not having a tgt for the server's realm).

[originally from svn r8210]
2008-10-17 20:55:08 +00:00
Simon Tatham
9c6a1127b4 Some Windows keymaps, it turns out, don't translate the key
combination Ctrl + \ as the Ctrl-\ character. All of mine have, but
at least one laptop turns out not to. Do so explicitly.

[originally from svn r8182]
2008-09-14 15:11:42 +00:00
Simon Tatham
4829802c43 Good grief. When I originally wrote the local proxy code two years
ago, I apparently caused all data received from local proxies to be
unconditionally tagged as TCP Urgent. Most network backends ignore
this, but it's critical to the Telnet backend, which will ignore all
Urgent-marked data in the assumption that there's a SYNCH on its way
that it should wait for. Nobody has noticed in two years, presumably
meaning that nobody has ever tried to do Telnet over a local proxy
in that time.

[originally from svn r8158]
2008-08-31 21:45:39 +00:00
Owen Dunn
de5dd9d65c Initial commit of GSSAPI Kerberos support.
[originally from svn r8138]
2008-08-10 13:10:31 +00:00
Simon Tatham
ae5002075a Merged from trunk up to r8033.
[originally from svn r8034]
[r8033 == e81a8cf795]
2008-06-01 11:19:06 +00:00
Simon Tatham
e81a8cf795 Been meaning to do this for years: introduce a configuration option
to manually tweak the host name and port number under which the SSH
host key is read and written.

I've put it in the cross-platform Connection panel. Partly under the
flimsy pretext that other backends _can_ use it if they so wish (and
in fact it overrides the host name for title-bar purposes in all
network backends, though it has no other effect in anything but
SSH); but mostly because the SSH panel was too full already :-)

[originally from svn r8033]
2008-06-01 11:16:32 +00:00
Simon Tatham
85c227326c Merge from trunk up to r8020.
[originally from svn r8021]
[r8020 == 14d825d42f]
2008-05-28 19:28:17 +00:00
Simon Tatham
14d825d42f OS X Leopard, it turns out, has a new and exciting strategy for
addressing X displays. Update PuTTY's display-name-to-Unix-socket-
path translation code to cope with it, thus causing X forwarding to
start working again on Leopard.

[originally from svn r8020]
2008-05-28 19:23:57 +00:00
Simon Tatham
822628246e Merge out from trunk, to keep this branch viable. We are now up to
date as of r7913.

[originally from svn r7914]
[r7913 == d7eda6d99c]
2008-03-10 18:48:36 +00:00
Jacob Nevins
9503c5e5c3 It's a new year (and we've even made a code checkin).
[originally from svn r7883]
[this svn revision also touched putty-website]
2008-02-24 00:16:29 +00:00
Simon Tatham
9024621b91 r7804 neglected to add a help context #define to winhelp.h.
[originally from svn r7815]
[r7804 == 1940b37ff0]
2007-12-15 10:41:40 +00:00
Simon Tatham
712b4689c8 sktree is indexed on the numeric value of the socket structure's
underlying WinSock SOCKET. Therefore, if we plan to modify the
SOCKET in a socket, we must remove it from the tree before doing so,
and put it back again afterwards. Otherwise it'll violate the tree's
sorting order, and sooner or later someone will try to find it and
get back NULL.

[originally from svn r7795]
2007-11-26 21:09:54 +00:00
Simon Tatham
9acc508c4e Harvey Kwok observes that EnumPrinters() can sometimes fail to fill
in its output parameters. Hence, we initialise them before calling
it.

[originally from svn r7729]
2007-09-21 18:04:08 +00:00
Ben Harris
8659f5145f "CR implies LF" patch, based on one from Paul Coldrey.
[originally from svn r7669]
2007-08-04 19:16:46 +00:00
Jacob Nevins
db7cc1cba6 Implement Marcin Bulandra's suggestion of only automatically updating the
port number in the GUI when the connection type is changed if the current
port number is the standard one for the current protocol.
It's not perfect, but it should make the common case of tabbing through the
Session panel easier when starting non-SSH connections on odd ports.

[originally from svn r7635]
2007-07-01 15:47:31 +00:00
Jacob Nevins
6c14388c1d Remove port number validation from Windows PuTTY -- it could cause unnecessary
trouble with serial connections, and a port number of zero gets caught later
anyway.

[originally from svn r7634]
2007-07-01 15:41:09 +00:00
Jacob Nevins
46c00b0f38 Rationalise access to, and content of, backends[] array.
Should be no significant change in behaviour.
(Well, entering usernames containing commas on Plink's command line will be
a little harder now.)

[originally from svn r7628]
2007-06-30 21:56:44 +00:00
Simon Tatham
3f9d53aa9e Update version numbers for 0.60 release.
[originally from svn r7488]
2007-04-29 11:28:54 +00:00
Simon Tatham
5f410ef051 In the wake of r7415, let's have some better error reporting.
Instead of passing -1 to its gotdata and sentdata callbacks on
error, winhandl.c will now pass the negation of the Windows error
number; and the Plink front end will now format that into an error
message and pass it on to the user.

[originally from svn r7416]
[r7415 == 702a92ceb8]
2007-03-27 19:10:10 +00:00
Simon Tatham
702a92ceb8 Windows apparently sends ERROR_BROKEN_PIPE when a pipe we're reading
from is closed normally from the writing end. This is ludicrous; if
that situation isn't a natural EOF, _nothing_ is. So if we get that
particular error, we pretend it's EOF.

[originally from svn r7415]
2007-03-27 18:49:59 +00:00
Jacob Nevins
a3ff37885d Prepend \\.\ to configured serial line string, to allow easy access to ports
above COM9.

[originally from svn r7345]
[this svn revision also touched putty-wishlist]
2007-02-28 21:30:06 +00:00
Jacob Nevins
befd797f97 Since r7265, a user could not launch a PuTTY session to a specific host by
simply specifying a hostname on the command line -- this would bring up the
config dialog. Use a slightly more sophisticated notion of whether the user
meant to launch a session.

[originally from svn r7321]
[r7265 == 5d76e00dac]
2007-02-25 00:50:24 +00:00
Jacob Nevins
31382c02df Allow dlg_listbox_index() to be called on multi-selection list boxes.
[originally from svn r7297]
2007-02-18 19:50:41 +00:00
Jacob Nevins
c5374da822 Ctrl-Break now sends a Break signal (previously it was equivalent to Ctrl-C).
[originally from svn r7295]
[this svn revision also touched putty-wishlist]
2007-02-18 14:02:39 +00:00
Jacob Nevins
8230ce9fa0 Unbreak "Duplicate session" on Windows, in a similar way to r7291.
[originally from svn r7292]
[r7291 == 062b5ab3e4]
2007-02-17 17:44:24 +00:00
Simon Tatham
062b5ab3e4 r7265 broke the legacy `putty @sessionname' construction, which I
wouldn't care about except for the fact that it's still used to
implement the Saved Sessions menu item in PuTTY and Pageant.

[originally from svn r7291]
[r7265 == 5d76e00dac]
2007-02-16 18:44:07 +00:00
Jacob Nevins
3d78bf9b26 It turns out that HH_INITIALIZE and HH_UNINITIALIZE are optional, and are for
putting HTML Help into "single-threaded" mode. Furthermore, this requires
extra work from the application (message pumping via HH_PRETRANSLATEMESSAGE).

Thus, remove them and run Help in a secondary thread. This means that keyboard
input into the Index and Search tabs now works.

[originally from svn r7285]
2007-02-13 22:57:19 +00:00
Simon Tatham
5d76e00dac Avoid launching a session from the Default Settings, even if they do
represent a launchable session, unless the user can be construed to
have really meant it. This means:
 - starting up PuTTY when the Default Settings are launchable still
   brings up the config box, and you have to hit Open to actually
   launch that session
 - double-clicking on Default Settings from the config box will load
   them but not launch them.
On the other hand:
 - explicitly loading the Default Settings on the command line using
   `-load' _does_ still launch them.

[originally from svn r7265]
2007-02-10 17:02:41 +00:00
Jacob Nevins
762f341d56 `installer.ico' doesn't fit into 8.3, so gets truncated to INSTALLE.ICO in
the Windows source Zips. Rename to `puttyins.ico'.

[originally from svn r7241]
2007-02-06 22:39:15 +00:00
Simon Tatham
a5d45db0c9 Avoid passing modified SVN revision numbers (of the form 1234M) to
parts of the versioning code which might not like them.

As a result of this checkin, bob builds from modified SVN working
copies will still announce themselves as revision nnnnM in the
textual version strings, but their binary version in the Windows
VERSIONINFO will now be 0.0.0.0.

[originally from svn r7231]
2007-02-05 18:07:11 +00:00
Simon Tatham
0a4bb7e711 Be slightly more forgiving about the nature of SVN_REV; bob will be
reliable at defining it, and it's useful to be able to pass `1234M'-
type revisions in for testing purposes.

[originally from svn r7221]
2007-02-05 08:02:53 +00:00
Simon Tatham
ab795ba008 Version management updates for the new bob build script. There's now
a fourth class of PuTTY version tags in addition to release,
snapshot and unidentified: we now have `Custom build r1234',
indicating a build made from that SVN revision in a context other
than that of a dated snapshot. The build script generates these when
it doesn't know what else to do; `unidentified builds' will now only
occur when you run nmake from the command line.

Also, the build script now generates sensible version data in the
installer to match this. So I _think_ we should now be set to use
bob to generate installer builds of the nightly snapshots, although
of course I'll have to wait until tomorrow to test one.

[originally from svn r7211]
2007-02-04 12:30:39 +00:00