1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00
putty-source/stubs
Simon Tatham 80aed96286 New system for reading prompts from the console.
Until now, the command-line PuTTY tools (PSCP, PSFTP and Plink) have
presented all the kinds of interactive prompt (password/passphrase,
host key, the assorted weak-crypto warnings, 'append to log file?') on
standard error, and read the responses from standard input.

This is unfortunate because if you're redirecting their standard
input (especially likely with Plink) then the prompt responses will
consume some of the intended session data. It would be better to
present the prompts _on the console_, even if that's not where stdin
or stderr point.

On Unix, we've been doing this for ages, by opening /dev/tty directly.
On Windows, we didn't, because I didn't know how. But I've recently
found out: you can open the magic file names CONIN$ and CONOUT$, which
will point at your actual console, if one is available.

So now, if it's possible, the command-line tools will do that. But if
the attempt to open CONIN$ and CONOUT$ fails, they'll fall back to the
old behaviour (in particular, if no console is available at all).

In order to make this happen consistently across all the prompt types,
I've introduced a new object called ConsoleIO, which holds whatever
file handles are necessary, knows whether to close them
afterwards (yes if they were obtained by opening CONFOO$, no if
they're the standard I/O handles), and presents a BinarySink API to
write to them and a custom API to read a line of text.

This seems likely to break _someone's_ workflow. So I've added an
option '-legacy-stdio-prompts' to restore the old behaviour.
2022-11-26 10:48:59 +00:00
..
CMakeLists.txt New facility, platform_start_subprocess. 2022-09-01 20:43:23 +01:00
no-ca-config.c Move host CA config box out into its own source file. 2022-05-01 10:16:19 +01:00
no-cmdline.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
no-console.c New system for reading prompts from the console. 2022-11-26 10:48:59 +00:00
no-gss.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
no-print.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
no-rand.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
no-term.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
no-timing.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
null-cipher.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
null-key.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
null-lp.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
null-mac.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
null-opener.c New facility, platform_start_subprocess. 2022-09-01 20:43:23 +01:00
null-plug.c Reorganise the stubs collection. 2022-09-01 20:43:23 +01:00
null-seat.c New Seat method, seat_nonfatal(). 2022-09-13 11:26:57 +01:00