1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +00:00
Go to file
Simon Tatham 5fdce31eca sshproxy: fix handling of connection closure.
Now we always respond to backend disconnection or connection_fatal by
calling plug_closing. And we always do it in a toplevel callback, so
that when the Plug responds by calling our Socket close method (which
frees us), nothing re-entrant happens.

Also, the handling of notify_remote_disconnect is brought into line
with the spec in putty.h, which says it can be sent redundantly (when
already disconnected) or spuriously (when not even disconnected at
all), so the toplevel callback queued by that method will check first.

After this change, failures during connection_setup are now handled
_mostly_ sensibly: if the proxy connection fails, then the main
connection gets enough information to pass a sensible connection_fatal
on to the real front end.

This also fixes the assertion failure mentioned in the TODO comment,
replacing it with a reasonably sensible connection_fatal() - although
I still think that in that situation it might be better not to have a
dialog box at all.
2021-11-06 14:48:26 +00:00
charset Add missing dependencies on generated source files. 2021-04-18 17:01:50 +01:00
cmake Compatibility with older versions of cmake. 2021-10-29 18:08:18 +01:00
contrib New script contrib/proveprime.py. 2021-06-12 13:50:51 +01:00
crypto Compatibility with older versions of cmake. 2021-10-29 18:08:18 +01:00
doc Compatibility with older versions of cmake. 2021-10-29 18:08:18 +01:00
icons Make Windows versions of the pterm icons. 2021-05-08 17:33:25 +01:00
keygen Make pcs_set_oneshot even more one-shot. 2021-08-27 18:04:49 +01:00
otherbackends Move TempSeat creation/destruction into Interactor. 2021-10-30 18:20:58 +01:00
proxy sshproxy: fix handling of connection closure. 2021-11-06 14:48:26 +00:00
ssh Move TempSeat creation/destruction into Interactor. 2021-10-30 18:20:58 +01:00
terminal Fix trust-sigil handling when scrolling the terminal. 2021-10-30 17:24:45 +01:00
test primegen.py: add a --probabilistic option. 2021-08-28 10:17:16 +01:00
unix Pass an Interactor to new_connection(). 2021-10-30 18:19:56 +01:00
utils Framework for announcing which Interactor is talking. 2021-10-30 18:20:33 +01:00
windows Split seat_banner from seat_output. 2021-10-30 17:37:09 +01:00
.gitignore Add .gitignore rules for in-tree builds. 2021-04-19 18:26:56 +01:00
aqsync.c Build outgoing SSH agent requests in a strbuf. 2018-05-25 14:36:16 +01:00
be_all_s.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_all.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_misc.c Send PLUGLOG_CONNECT_SUCCESS in proxied socket types. 2021-09-13 14:38:44 +01:00
be_none.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_nos_s.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_nossh.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_ssh.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
Buildscr Merge tag '0.76' into main 2021-07-17 11:49:44 +01:00
Buildscr.cv Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
callback.c Add lots of missing 'static' keywords. 2020-01-29 06:44:18 +00:00
cgtest.c cmdgen: support configurable key fingerprint type. 2021-03-13 11:01:35 +00:00
CHECKLST.txt Compatibility with older versions of cmake. 2021-10-29 18:08:18 +01:00
clicons.c Change vtable defs to use C99 designated initialisers. 2020-03-10 21:06:29 +00:00
CMakeLists.txt Framework for announcing which Interactor is talking. 2021-10-30 18:20:33 +01:00
cmdgen.c cmdgen: add missing null pointer check in --dump mode. 2021-05-19 10:42:42 +01:00
cmdline.c Add -pwfile option, a more secure version of -pw. 2021-09-28 18:04:15 +01:00
config.c Lowercase version of BackendVtable's displayname. 2021-10-24 09:59:05 +01:00
console.c Mention the host name in host-key prompts. 2021-09-16 14:33:59 +01:00
console.h Mention the host name in host-key prompts. 2021-09-16 14:33:59 +01:00
defs.h Framework for announcing which Interactor is talking. 2021-10-30 18:20:33 +01:00
dialog.c dialog system: add a side-by-side alignment feature. 2021-04-10 09:43:25 +01:00
dialog.h dialog system: add a side-by-side alignment feature. 2021-04-10 09:43:25 +01:00
errsock.c Change vtable defs to use C99 designated initialisers. 2020-03-10 21:06:29 +00:00
fuzzterm.c win_set_[icon_]title: send a codepage along with the string. 2021-10-16 14:00:46 +01:00
import.c Spelling: standardise on "DSA", not "DSS". 2021-04-22 18:34:47 +01:00
LATEST.VER Update version number for 0.76 release. 2021-07-10 10:39:20 +01:00
ldisc.c free_prompts: deal with a reference from an Ldisc. 2021-09-16 13:55:10 +01:00
LICENCE It's a new year. 2021-01-11 21:37:51 +00:00
licence.pl Separate the functions of licence.pl. 2021-04-17 13:52:27 +01:00
logging.c sshproxy: share the caller's LogPolicy. 2021-09-13 17:18:31 +01:00
marshal.h Add some more marshalling functions, for file parsing. 2020-01-09 19:57:35 +00:00
misc.h win_set_[icon_]title: send a codepage along with the string. 2021-10-16 14:00:46 +01:00
mksrcarc.sh Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
mkunxarc.sh Integrate the 'doc' subdir into the CMake system. 2021-05-03 17:01:55 +01:00
mpint.h Make mp_unsafe_mod_integer not be unsafe. 2021-08-27 17:43:40 +01:00
network.h Pass an Interactor to new_connection(). 2021-10-30 18:19:56 +01:00
nocmdline.c Make cmdline_tooltype a const int. 2020-01-30 06:40:22 +00:00
nogss.c
noprint.c noprint.c: fix compile failure. 2021-02-10 21:07:57 +00:00
norand.c Centralise 'no random numbers' stubs into norand.c. 2020-02-07 19:17:19 +00:00
noterm.c Complete rework of terminal userpass input system. 2021-09-14 13:19:33 +01:00
notiming.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
nullplug.c Remove 'calling_back' parameter from plug_closing. 2021-10-24 09:58:59 +01:00
pageant.c Remove 'calling_back' parameter from plug_closing. 2021-10-24 09:58:59 +01:00
pageant.h winpgnt: menu options to delete/reencrypt everything. 2021-04-04 10:02:24 +01:00
pinger.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
pscp.c Split seat_banner from seat_output. 2021-10-30 17:37:09 +01:00
psftp.c Split seat_banner from seat_output. 2021-10-30 17:37:09 +01:00
psftp.h Remove FLAG_VERBOSE. 2020-01-30 06:40:21 +00:00
psftpcommon.c Move the SSH implementation into its own subdirectory. 2021-04-22 18:09:13 +01:00
psocks.c Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
psocks.h Auxiliary application: 'psocks', a simple SOCKS server. 2020-02-23 16:36:27 +00:00
putty.h Actually print announcements of Interactors' identity. 2021-10-30 18:20:58 +01:00
puttymem.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
README Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
release.pl Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
settings.c Make BugDropStart default to FORCE_OFF, not AUTO. 2021-11-04 15:13:33 +00:00
sign.sh GPG key rollover. 2021-08-14 08:02:27 +01:00
ssh.h Framework for announcing which Interactor is talking. 2021-10-30 18:20:33 +01:00
sshcr.h Assorted benign warning fixes. 2020-01-29 06:44:18 +00:00
sshkeygen.h Side-channel-safe rewrite of the Miller-Rabin test. 2021-08-27 18:04:49 +01:00
sshpubk.c Fix tight loop on reading truncated key files. 2021-05-23 08:59:13 +01:00
sshrand.c Remove dependency of sshrand.c on SHA-512. 2020-09-13 09:11:31 +01:00
storage.h Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
testcrypt.c Add some tests of Miller-Rabin to cryptsuite. 2021-08-27 17:43:40 +01:00
testcrypt.h Add some tests of Miller-Rabin to cryptsuite. 2021-08-27 17:43:40 +01:00
testsc.c testsc: remove log_discard(). 2021-09-07 13:46:37 +01:00
testzlib.c Move the SSH implementation into its own subdirectory. 2021-04-22 18:09:13 +01:00
timing.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
tree234.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
version.h Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
x11disp.c Move the SSH implementation into its own subdirectory. 2021-04-22 18:09:13 +01:00

This is the README for PuTTY, a free Windows and Unix Telnet and SSH
client.

PuTTY is built using CMake <https://cmake.org/>. To compile in the
simplest way (on any of Linux, Windows or Mac), run these commands in
the source directory:

  cmake .
  cmake --build .

Documentation (in various formats including Windows Help and Unix
`man' pages) is built from the Halibut (`.but') files in the `doc'
subdirectory using `doc/Makefile'. If you aren't using one of our
source snapshots, you'll need to do this yourself. Halibut can be
found at <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>.

The PuTTY home web site is

    https://www.chiark.greenend.org.uk/~sgtatham/putty/

If you want to send bug reports or feature requests, please read the
Feedback section of the web site before doing so. Sending one-line
reports saying `it doesn't work' will waste your time as much as
ours.

See the file LICENCE for the licence conditions.