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

457 Commits

Author SHA1 Message Date
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
Simon Tatham
d7eda6d99c Under OS X Leopard, we seem not to consistently get the Tab key
translated for us. Be prepared to do it manually as a fallback.

[originally from svn r7913]
2008-03-09 15:32:20 +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
5e42fe8fc9 Aha, _that's_ why I've been periodically getting blocking-write
problems using Unix PuTTY port forwarding. Sockets we create by
connect() are immediately set into nonblocking mode by fcntl, but
sockets we create by accept() were not. This trivial fix should help.

[originally from svn r7864]
2008-02-21 09:18:24 +00:00
Simon Tatham
020c481dd4 Duplicate r7795 in uxnet.c.
[originally from svn r7796]
[r7795 == 712b4689c8]
2007-11-28 20:45:50 +00:00
Ben Harris
ea9a3bdb7d More fixes to stdout and stderr. When the backlog on either clears, call
the backend's unthrottle function.  If we don't, we'll deadlock.  While
we're here, also pump as much data as possible out during each call to
try_output(), rather than restricting ourselves to a single call to
write().

[originally from svn r7755]
2007-10-02 21:43:53 +00:00
Ben Harris
241c53acea As far as I can see (at least in NetBSD) O_NONBLOCK and FIONBIO are equivalent,
except that O_NONBLOCK is standardised and FIONBIO isn't.  In consequence,
replace our only use of FIONBIO with O_NONBLOCK.

Inspired by Jonathan H N Chin, who had problems with this on Solaris.

[originally from svn r7753]
2007-10-02 21:07:52 +00:00
Ben Harris
ef370ee6fa Set cfg.ssh_simple if there are no forwardings.
[originally from svn r7750]
2007-09-30 14:14:29 +00:00
Ben Harris
c5996bcde5 When writing session data to stdout or stderr, switch the relevant file
descriptor into non-blocking mode temporarily, and correctly handle returns
of EAGAIN from write().  This should fix unix-plink-stdout-nonblock, while
avoiding EAGAIN turning up where we aren't expecting it.

[originally from svn r7748]
2007-09-30 12:45:49 +00:00
Ben Harris
faa6e26d38 Add support for resetting the terminal modes on stderr to something sensible
before printing error messages to it.  This should fix the stair-stepping
in Plink's progress messages.

[originally from svn r7745]
2007-09-29 12:27:45 +00:00
Ben Harris
38ee5fc58d My changes in r7738 (O_NONBLOCK for Unix Plink) were half-arsed, and
completely broke interactive logins.  The problem, or at least one of the
problems, was that in interactive use stdin, stdout, and stderr tend to be
the same file, so setting O_NONBLOCK on the latter two also sets it on the
former.  Thus, we need to cope with all of them being non-blocking.

[originally from svn r7742]
[r7738 == d0db31a1ca]
2007-09-24 21:43:48 +00:00
Ben Harris
57c3ac7f14 Manifest constants are good. Introduce plink to STD{IN,OUT,ERR}_FILENO,
TRUE, and FALSE.

[originally from svn r7741]
2007-09-24 21:31:45 +00:00
Ben Harris
d0db31a1ca stdout and stderr should be made O_NONBLOCK so that we don't end up blocking
the entire process because stdout is busy.

Arguably, this shouldn't apply to stderr when we're printing our own error
messages to it, but I'll leave that fix for another time.

[originally from svn r7738]
2007-09-24 19:26:08 +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
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
7e4eb1f404 Patch from John Sullivan: process double-clicks in the session list
box on button-up rather than button-down. The effect of this is that
if a saved session is already selected in the list box and then you
double-click it, it will open rather than beeping annoyingly.

[originally from svn r7414]
2007-03-27 18:16:36 +00:00
Ben Harris
d1df3e226a Fix a stupid one-character typo that was breaking 256-colour support on GTK.
[originally from svn r7403]
2007-03-19 12:05:34 +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
Simon Tatham
b897c90dd3 Gareth pointed out yesterday that the Unix terminal front end treats
BELL_DISABLED as BELL_DEFAULT. How embarrassing.

[originally from svn r7316]
2007-02-24 13:36:11 +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
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
Simon Tatham
9c35141162 Ahem; other half of r7232...
[originally from svn r7233]
[r7232 == 6ee6a4d379]
2007-02-05 20:14:17 +00:00
Simon Tatham
6ee6a4d379 When calling TIOCSCTTY, it helps to pass it an fd that's still open,
instead of one we closed two lines earlier. I apparently broke this
in r7107.

[originally from svn r7232]
[r7107 == 32b25c13da]
2007-02-05 20:04:33 +00:00
Simon Tatham
b5df0a7732 Colin Watson has fixed the disgusting icons on GTK1. His patch
appears to merely fix the background colour (arranging for it to
have transparency rather than being on some kind of default grey
background), but it turns out to also fix the strange blurry
behaviour I see in the GNOME Taskbar, for no very obvious reason.

[originally from svn r7186]
2007-01-31 12:30:48 +00:00
Simon Tatham
12e019bafc Better not forget to make sure GTK1 doesn't break.
[originally from svn r7174]
2007-01-27 17:47:48 +00:00
Simon Tatham
1d829f97cc Move the TODO items from the top of gtkdlg.c into the main TODO file.
[originally from svn r7173]
2007-01-27 17:21:06 +00:00
Simon Tatham
0ed390d44a Changed my mind about r7164. Instead of checking for zero flags
inside one single uxsel front end, better to do it centrally and
avoid passing zero flags on to the front end in the first place. I'm
sure other similarly structured front ends could get confused by it
too.

[originally from svn r7171]
[r7164 == 65f9735b95]
2007-01-26 20:00:32 +00:00
Simon Tatham
13ad541cb5 Er, whoops. Remove two lines from a previous attempt at r7165, which
broke the build. Ahem.

[originally from svn r7166]
[r7165 == 6d81ee9cc0]
2007-01-26 08:03:07 +00:00
Simon Tatham
6d81ee9cc0 Collapse tree view branches deeper than level 2, bringing the GTK2
tree code into line with the GTK1.

[originally from svn r7165]
2007-01-26 08:01:47 +00:00
Simon Tatham
65f9735b95 Stop calling gdk_input_add() with a zero flags word. If we don't
want to know about any input events on a socket, it's simpler not to
call gdk_input_add() on it at all.

I hesitate to say `fixes', but ... this change _causes to go away_
the weird problem I had with blank host key dialogs. I have no
understanding of the chain of cause and effect between gdk_input_add
with zero flags and missing redraw events, but it seems like a
change I should make anyway, so I'm going to do so and hope the
problem doesn't come back :-/

[originally from svn r7164]
2007-01-26 07:28:55 +00:00
Simon Tatham
5d3306f98d Another TODO item. (There's always one.)
[originally from svn r7163]
2007-01-25 19:59:55 +00:00
Simon Tatham
c5953f1680 Begin tracking a TODO list for this branch.
[originally from svn r7162]
2007-01-25 19:56:05 +00:00
Simon Tatham
ac7870a635 A nasty GTK signal cascade was causing any edit box whose contents
was modified on session load to be blanked. More details in the
comment in dlg_editbox_set().

[originally from svn r7161]
2007-01-25 19:47:36 +00:00
Simon Tatham
a3da28f607 Fix the incorrect layout of the buttons at the bottom of the main
config box.

[originally from svn r7160]
2007-01-25 19:45:50 +00:00
Simon Tatham
35309b5683 Add Colin to the licence. (I must remember to add him to the licence
on the website, when we merge this back into the trunk.)

[originally from svn r7158]
2007-01-25 19:36:11 +00:00
Simon Tatham
d1d918b6f1 Commit Colin Watson's original GTK2 patch, exactly as mailed to me
on 1st January except that I've had to fiddle with it a bit to take
account of r7117 having happened since then.

[originally from svn r7157]
[r7117 == 174bb7f1fd]
2007-01-25 19:33:29 +00:00
Simon Tatham
7a4ef1491e 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]
2007-01-24 13:53:28 +00:00
Ben Harris
003424de05 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]
2007-01-20 14:13:57 +00:00
Simon Tatham
2dd7aba1e8 Add more ifdefs to make uxser.c compile on OS X.
[originally from svn r7118]
2007-01-16 19:26:24 +00:00
Simon Tatham
174bb7f1fd 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]
2007-01-16 18:48:47 +00:00
Simon Tatham
32b25c13da 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]
2007-01-14 13:44:07 +00:00
Simon Tatham
4fa9564c90 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]
2007-01-09 18:14:30 +00:00
Simon Tatham
c1a9dbef13 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]
2007-01-07 10:17:12 +00:00
Simon Tatham
334ef0824c No, I tell a lie: GTK 1 _does_ support icons, at least partially. Ooh.
[originally from svn r7064]
2007-01-06 18:27:00 +00:00
Jacob Nevins
55947f2346 It's a new year.
[originally from svn r7048]
[this svn revision also touched putty-website,puzzles]
2007-01-01 21:19:14 +00:00
Jacob Nevins
cd94e3bc3c 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]
2006-12-30 23:00:14 +00:00
Simon Tatham
9cea4aaf06 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]
2006-12-29 14:35:34 +00:00
Ben Harris
86eac20abb Set FD_CLOEXEC in a little convenience function that does the right thing
with F_GETFD and F_SETFD.

[originally from svn r6978]
2006-12-09 15:44:31 +00:00
Simon Tatham
fd6d9bd677 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]
2006-11-23 14:32:11 +00:00
Simon Tatham
e9ce146b9f 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]
2006-10-03 17:16:26 +00:00