Граф коммитов

3460 Коммитов

Автор SHA1 Сообщение Дата
Simon Tatham 78dc12eec7 Fix a type mismatch in minibidi.c - r9409 changed the 'wc' fields in
bidi_char from wchar_t to unsigned int, but omitted to similarly
adjust the parameter to doMirror which is passed a pointer to that
field.

[originally from svn r9426]
[r9409 == 053d2ba6d1]
2012-03-05 18:34:40 +00:00
Simon Tatham 9ecfbee08f Initialise some variables to NULL, to placate optimisers.
[originally from svn r9425]
2012-03-05 18:32:27 +00:00
Jacob Nevins 24f0a6f13b Remove comment about 1024/1023 RSA key lengths that's no longer true as of
r9421.

[originally from svn r9422]
[r9421 == 9604c2b367]
2012-03-04 01:01:11 +00:00
Simon Tatham 9604c2b367 Generate keys more carefully, so that when the user asks for an n-bit
key they always get an n-bit number instead of n-1. The latter was
perfectly harmless but kept confusing users.

[originally from svn r9421]
2012-03-04 00:24:49 +00:00
Simon Tatham e59f1ac827 Long overdue rewrapping of the primes[] array for legibility. I think
the previous ghastly formatting arose when I ran the whole source base
through GNU indent...

[originally from svn r9420]
2012-03-04 00:24:47 +00:00
Simon Tatham 948203f2c7 Update default key length in PuTTYgen to 2048.
[originally from svn r9414]
2012-02-19 10:44:04 +00:00
Simon Tatham 46bd2b0721 Update to 2007-05-26 version of upstream wcwidth.c.
[originally from svn r9413]
2012-02-19 10:32:44 +00:00
Simon Tatham 21b04f5e00 Patch from Matsui Nag to implement xterm's "bracketed paste mode", in
which text pasted into the terminal is preceded and followed by
special function-key-like escape sequences ESC[200~ and ESC[201~ so
that the application can identify it and treat it specially (e.g.
disabling auto-indent-same-as-previous-line in text editors). Enabled
and disabled by ESC[?2004h and ESC[?2004l, and of course off by
default.

[originally from svn r9412]
2012-02-19 10:27:18 +00:00
Simon Tatham 053d2ba6d1 Patch from Yoshida Masato to fill in the missing pieces of Windows
UTF-16 support. High Unicode characters in the terminal are now
converted back into surrogates during copy and draw operations, and
the Windows drawing code takes account of that when splitting up the
UTF-16 string for display. Meanwhile, accidental uses of wchar_t have
been replaced with 32-bit integers in parts of the cross-platform code
which were expecting not to have to deal with UTF-16.

[originally from svn r9409]
2012-02-17 19:28:55 +00:00
Simon Tatham e350ca2b4e WM_SIZE/SIZE_MAXIMIZED can show up even during an interactive resize,
so we should ensure we treat it the same way as other WM_SIZEs that
show up during that time: set the width and height in conf, and set
the flag to have that width and height enacted on WM_EXITSIZEMOVE.

Fixes a bug in which dragging a PuTTY window directly from the Win7
snapped-to-half-screen position to the snapped-to-maximised state
would leave the terminal in the pre-snapped size.

[originally from svn r9404]
2012-02-05 10:08:20 +00:00
Jacob Nevins f9a6c2e4a5 New FAQ: "When I put PuTTY in C:\WINDOWS\SYSTEM32 on my 64-bit Windows system,
`Duplicate Session' doesn't work." (Explanation courtesy Owen.)

[originally from svn r9391]
2012-01-30 00:29:32 +00:00
Jacob Nevins 0e6f6ff4eb It's a new year.
[originally from svn r9390]
[this svn revision also touched putty-website]
2012-01-26 18:53:53 +00:00
Simon Tatham 7c61b3c733 If we're called on to uncleanly close an SSH channel for which we've
already sent SSH2_MSG_CHANNEL_CLOSE, we should not skip the _whole_ of
sshfwd_unclean_close(), only the part about sending
SSH2_MSG_CHANNEL_CLOSE. It's still important to retag the SSH channel
as CHAN_ZOMBIE and clean up its previous data provider.

[originally from svn r9389]
2012-01-26 18:22:28 +00:00
Simon Tatham 736c5f86eb Patch from Colin Watson to use g_ascii_strcasecmp in place of the
deprecated g_strcasecmp (since all the strings being compared are
parts of XLFDs and won't be in interesting character sets anyway).

[originally from svn r9376]
2012-01-03 19:43:19 +00:00
Simon Tatham a80ba74239 Checklist update following the 0.62 release. I managed to send out the
announcement email without a subject line, so I'm reorganising the
announcement entry in the checklist in the hope that it'll make it
harder for me to get that one wrong in future!

[originally from svn r9371]
2011-12-10 14:03:02 +00:00
Simon Tatham c968d9fe8e Bump version number on trunk prior to tagging 0.62 on the branch.
[originally from svn r9365]
2011-12-10 12:07:46 +00:00
Simon Tatham 49927f6c4d Introduce a function sshfwd_unclean_close(), supplied by ssh.c to
subsidiary network modules like portfwd.c. To be called when the
subsidiary module experiences a socket error: it sends an emergency
CHANNEL_CLOSE (not just outgoing CHANNEL_EOF), and immediately deletes
the local side of the channel. (I've invented a new channel type in
ssh.c called CHAN_ZOMBIE, for channels whose original local side has
already been thrown away and they're just hanging around waiting to
receive the acknowledging CHANNEL_CLOSE.)

As a result of this and the last few commits, I can now run a port
forwarding session in which a local socket error occurs on a forwarded
port, and PuTTY now handles it apparently correctly, closing both the
SSH channel and the local socket and then actually recognising that
it's OK to terminate when all _other_ channels have been closed.
Previously the channel corresponding to the duff connection would
linger around (because of net_pending_errors never being called), and
keep being selected on (hence chewing CPU), and inhibit program
termination at the end of the session (because not all channels were
closed).

[originally from svn r9364]
2011-12-08 19:15:58 +00:00
Simon Tatham f892af999e Arrange to call net_pending_errors on Unix, which we've never actually
remembered to do before! Also some related fixes, such as that after
we do so we should immediately stop selecting on the socket in
question.

[originally from svn r9363]
2011-12-08 19:15:57 +00:00
Simon Tatham 8aa218e894 When we receive CHANNEL_CLOSE on an SSH-2 channel and haven't sent EOF
on it yet, we should send EOF on _that channel_, not the main session
channel! Oops.

[originally from svn r9362]
2011-12-08 19:15:55 +00:00
Simon Tatham 69a01afe48 Whitespace fix while I was passing.
[originally from svn r9361]
2011-12-08 19:15:54 +00:00
Simon Tatham 8e9868bda0 Make sure we never send window adjustments (or winadjes) on channels
for which we've already sent CHANNEL_CLOSE. It would be embarrassing
if the remote end had also sent CHANNEL_CLOSE in response and then
received our communication once it had forgotten about the channel.

[originally from svn r9360]
2011-12-08 19:15:53 +00:00
Simon Tatham 66ea8dc1b9 Block SIGPIPE in Unix plink. In a port-forwarding run we may have lots
of local sockets and pipes all open at once, and if one of them is
uncleanly closed from the remote end we don't want the whole
application to die - we want to close that socket's SSH channel and
continue with the rest of the run.

[originally from svn r9359]
2011-12-08 19:15:52 +00:00
Simon Tatham bb542eaeff Add a missing free_prompts() call in the keyboard-interactive code.
[originally from svn r9357]
2011-12-07 19:07:02 +00:00
Simon Tatham 1682b42b87 Tiny patch from Martin Packman to fix a Windows handle leak in
Pageant's IPC mechanism. It's incomplete (he sent a much more
comprehensive set of fixes that I haven't reviewed), but should be
adequate to mitigate a particular issue for Bazaar users.

[originally from svn r9355]
2011-11-28 19:23:43 +00:00
Simon Tatham 7d4789dccb I missed a bit in r9343: windows/version.rc2 also needed updating for
the new 'pre-release' version type.

[originally from svn r9353]
[r9343 == 1dff23a214]
2011-11-28 19:17:04 +00:00
Simon Tatham ce5be27773 Add a release checklist entry to remind me to get rid of 'pre-release'
sections on the Download page.

[originally from svn r9351]
2011-11-27 11:10:15 +00:00
Simon Tatham 1dff23a214 Introduce a new version type, 'prerelease'. Quotes the version number
it's a pre-release of, and the revision number so you can tell two
pre-releases apart. I intend to use this for builds from branch-0.61
until I call it 0.62 proper.

[originally from svn r9343]
2011-11-26 17:35:21 +00:00
Simon Tatham c72d4b413f Support code page 852. Thanks to Tamas Tevesz.
[originally from svn r9326]
2011-10-14 07:03:29 +00:00
Simon Tatham 6cfe48cde4 Private files saved on Unix should have mode 0600, not 0700. They're
generally private-key files, which have no need to be executable.

[originally from svn r9321]
2011-10-02 14:16:08 +00:00
Simon Tatham a27605c784 More arbitrary-limit hunting: retire PASSPHRASE_MAXLEN in the Windows
GUIs of Pageant and PuTTYgen. With that and the prompts_t redesign,
there should no longer be any limit on passphrase length other than
the patience of the user.

[originally from svn r9320]
2011-10-02 14:14:21 +00:00
Simon Tatham ff5a9c77fd Another utility function, to free a string containing sensitive data.
[originally from svn r9319]
2011-10-02 14:03:47 +00:00
Simon Tatham 535d77abf0 Move a recently introduced utility function out of the file in which I
declared it static, and into winutils.c where it can be more generally
accessible.

[originally from svn r9318]
2011-10-02 13:53:58 +00:00
Simon Tatham da66c0656a While I'm crusading against arbitrary limits, here's a redesign of
prompt_t to arrange that the buffer in which each prompt is stored can
be reallocated larger during the input process.

[originally from svn r9317]
2011-10-02 11:50:45 +00:00
Simon Tatham 62cbc7dc0b Turn 'Filename' into a dynamically allocated type with no arbitrary
length limit, just as I did to FontSpec yesterday.

[originally from svn r9316]
2011-10-02 11:01:57 +00:00
Jacob Nevins 342690f7cb Fix copy-and-paste error in command-line font selection in r9314.
[originally from svn r9315]
[r9314 == 9c75fe9a3f]
2011-10-01 18:00:49 +00:00
Simon Tatham 9c75fe9a3f Change the semantics of 'FontSpec' so that it's a dynamically
allocated type.

The main reason for this is to stop it from taking up a fixed large
amount of space in every 'struct value' subunion in conf.c, although
that makes little difference so far because Filename is still doing
the same thing (and is therefore next on my list). However, the
removal of its arbitrary length limit is not to be sneezed at.

[originally from svn r9314]
2011-10-01 17:38:59 +00:00
Simon Tatham f69591412c We shouldn't fork off a utmp helper subprocess when we aren't setuid,
because (a) under that circumstance we won't be writing to utmp
anyway, and (b) if we aren't setuid, then we won't have created the
pty at the point we fork, so even if our subprocess _could_ have
written to utmp it wouldn't have done it right!

Spotted by valgrind (triggering on the access beyond the end of the
ttyname string in setup_utmp, clueing me in to it having been empty).

[originally from svn r9309]
2011-09-19 16:38:23 +00:00
Simon Tatham 73444adc50 Add a missing initialisation to NULL.
[originally from svn r9308]
2011-09-19 16:21:25 +00:00
Simon Tatham 0c4a041f9b Cope with XFontStructs having a NULL per_char array, which happened to
me this morning under strange circumstances.

[originally from svn r9303]
2011-09-17 14:50:18 +00:00
Simon Tatham f5b9da6f31 Fix x11font_has_glyph so it doesn't get caught out by signed chars.
[originally from svn r9295]
2011-09-17 08:11:11 +00:00
Simon Tatham 218f3ffded Suppress Pango's bidi, by displaying RTL characters one at a time. I
hadn't previously noticed, but Pango was helpfully re-reversing text
that PuTTY's own bidi module had already reversed, leading to Arabic
text being wrongly displayed and also total chaos when you move the
cursor over it or try to cut and paste it.

[originally from svn r9294]
2011-09-16 19:18:58 +00:00
Simon Tatham 92688ff47b Support font fallback even when an X11 server-side font is selected,
by introducing a wrapper around an individual unifont which falls back
to Pango (which already has built-in fallback) in the case where the
selected font doesn't support the glyph in question.

The wrapper itself is a (vestigial) subclass of unifont, to minimise
disturbance at the call sites.

[originally from svn r9293]
2011-09-16 19:18:54 +00:00
Simon Tatham 24bad48f00 Change the unifont API so that text is passed right down to the
individual font implementation as wchar_t, rather than having to be
converted by the client into the appropriate MBCS/SBCS.

This also means I can remove 'real_charset' from the public-facing
contents of the unifont structure.

[originally from svn r9292]
2011-09-16 19:18:53 +00:00
Simon Tatham c8d943ed9d Add some missing consts in character set handling.
[originally from svn r9291]
2011-09-16 19:18:52 +00:00
Simon Tatham b53c04b43a Remove empty.h from CLEANFILES, so that after mkfiles.pl has
constructed it it won't be deleted again by 'make clean'. The effect
is that not only does this work (as r9288 arranged),

  ./configure; make plink

but these work too:

  ./configure; make; make clean; make plink
  ./configure; make; make distclean; ./configure; make plink

[originally from svn r9290]
[r9288 == a4424bfd85]
2011-09-16 09:01:41 +00:00
Simon Tatham 78466a6b68 Stop using GDK's wrapper on the X11 font functions (GdkFont). All X11
font operations are now done directly using Xlib calls, and the only
interaction with GDK within the x11font mechanism is to get the X ids
for drawables, GCs and the X display itself.

This should remove an obstacle to porting to GTK3, and also makes the
XFontStruct for loaded fonts more readily available, which I hope will
come in handy for another plan I have in mind.

[originally from svn r9289]
2011-09-16 08:49:08 +00:00
Simon Tatham a4424bfd85 Create empty.h (used to force rebuilds of version.o by the automake
makefile) as a side effect of running mkfiles.pl.

The automake docs observe that the BUILT_SOURCES list is only
automatically built by plain 'make' or 'make all' or a couple of other
targets, so the sequence './configure && make plink' from a freshly
unpacked tar file would previously fail for lack of empty.h.

If empty.h had important _content_ that needed to be built at compile
time, of course, I wouldn't be able to fix it like this; but since the
only important thing is the timestamp, I can just make sure it already
exists at the time of first build.

[originally from svn r9288]
2011-09-14 15:54:26 +00:00
Simon Tatham aac16a33e8 No, I take that back: we _do_ have a mechanism for suppressing reads
from forwarding data sources which will be good enough to last until
we close the socket, in the form of the override_throttle() functions.
So this finishes up the work in r9283, by manufacturing outgoing EOF
in response to incoming CLOSE on all channel types.

[originally from svn r9284]
[r9283 == c54e228d04]
2011-09-14 09:49:00 +00:00
Simon Tatham c54e228d04 Another tweak to EOF policy: invent an outgoing EOF on receipt of an
incoming CHANNEL_CLOSE, if it's the main session channel. The idea is
that invocations such as 'plink -T hostname sh' (running a shell
without a remote pty) can be exited by typing 'exit' to the remote
shell, without plink blocking forever waiting for outgoing EOF.

I think it would be better to do the same for all other channel types
too, but that would need an extra API call which I haven't
implemented yet.

[originally from svn r9283]
2011-09-14 09:09:35 +00:00
Simon Tatham 6e2bcd24a4 Changed my mind about the EOF policy in SSH mode: I think the SSH
backend should unilaterally assume outgoing EOF when it sees incoming
EOF, if and only if the main session channel is talking to a pty.
(Because ptys don't have a strong concept of EOF in the first place,
that seems like a sensible place to draw the line.) This fixes a bug
introduced by today's revamp in which if you used Unix Plink to run a
console session it would hang after you hit ^D - because the server
had sent EOF, but it was waiting for a client-side EOF too.

[originally from svn r9282]
2011-09-13 15:38:12 +00:00