simon-git: putty (main): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Thu Sep 16 17:52:06 BST 2021


TL;DR:
  a45ae817 Remove 'is_stderr' parameter from term_data.
  ac47e550 seat_output: add an output type for SSH banners. (NFC)
  71cb9ca4 TempSeat: fix output interleaving.
  d32d49c2 SshProxy: pass some more functions to the client seat.
  5ca0a756 SshProxy: display auth banners from proxy connections.
  adf6b698 SshProxy: reset trust status after setup completes.
  fb663d47 Promote ssh2_userauth_antispoof_msg into utils.

Repository:     https://git.tartarus.org/simon/putty.git
On the web:     https://git.tartarus.org/?p=simon/putty.git
Branch updated: main
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2021-09-16 17:52:06

commit a45ae8179770b07524feacca5994eb791356b3fd
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=a45ae8179770b07524feacca5994eb791356b3fd;hp=d1dc1e927c20d8278c311fc0694bdc8661c17dbd
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Sep 16 14:50:59 2021 +0100

    Remove 'is_stderr' parameter from term_data.
    
    It wasn't actually used for anything, and removing it now will save me
    deciding what to do with it in the next commit.

 fuzzterm.c       | 2 +-
 putty.h          | 2 +-
 terminal.c       | 4 ++--
 unix/window.c    | 2 +-
 windows/window.c | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

commit ac47e550c6f6be4a5caa8eb5ac759b44b13399d0
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=ac47e550c6f6be4a5caa8eb5ac759b44b13399d0;hp=a45ae8179770b07524feacca5994eb791356b3fd
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Sep 16 14:46:49 2021 +0100

    seat_output: add an output type for SSH banners. (NFC)
    
    The jump host system ought really to be treating SSH authentication
    banners as a distinct thing from the standard-error session output, so
    that the former can be presented to the user in the same way as the
    auth banner for the main session.
    
    This change converts the 'bool is_stderr' parameter of seat_output()
    into an enumerated type with three values. For the moment, stderr and
    banners are treated the same, but the plan is for that to change.

 pscp.c                 | 11 ++++++-----
 psftp.c                | 11 ++++++-----
 putty.h                | 35 +++++++++++++++++++++++------------
 ssh/sesschan.c         | 11 ++++++++---
 ssh/userauth2-client.c |  6 +++---
 sshproxy.c             |  2 +-
 unix/plink.c           |  3 ++-
 unix/window.c          |  2 +-
 utils/nullseat.c       |  2 +-
 utils/tempseat.c       | 23 +++++++++++++++--------
 windows/plink.c        |  3 ++-
 windows/window.c       |  4 ++--
 12 files changed, 70 insertions(+), 43 deletions(-)

commit 71cb9ca487f495c112af6c496f091ccf2349cc00
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=71cb9ca487f495c112af6c496f091ccf2349cc00;hp=ac47e550c6f6be4a5caa8eb5ac759b44b13399d0
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Sep 16 15:03:42 2021 +0100

    TempSeat: fix output interleaving.
    
    Working on the previous commit, I suddenly realised I'd made a mistake
    in the design of TempSeat: you can't buffer standard output and
    standard error separately and then replay them one after another,
    because the interleaving of the two kinds of output might also be
    significant. (Especially if the consuming Seat doesn't separate them.)
    
    Now TempSeat has a single bufchain for all the data, paralleled by a
    linked list describing each contiguous chunk of it consisting of a
    single output type. So we can replay the data with both the correct
    separation _and_ the correct order.

 utils/tempseat.c | 82 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 64 insertions(+), 18 deletions(-)

commit d32d49c2e01ce374bc3f7f289972b3d46c1204c8
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=d32d49c2e01ce374bc3f7f289972b3d46c1204c8;hp=71cb9ca487f495c112af6c496f091ccf2349cc00
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Sep 16 17:18:49 2021 +0100

    SshProxy: pass some more functions to the client seat.
    
    Now that we're actually using it for messages, we also need to pass
    its interactivity setting through to the subsidiary SSH backend,
    because otherwise that won't know whether to display particular
    messages. Same goes for constructing a StripCtrl for SSH auth banners
    (which wants to be done the same way between primary and proxy SSH
    connections), and so on.

 sshproxy.c | 45 ++++++++++++++++++++++++++++++---------------
 1 file changed, 30 insertions(+), 15 deletions(-)

commit 5ca0a7563671c3a088617d6f120a45078a01fe17
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=5ca0a7563671c3a088617d6f120a45078a01fe17;hp=d32d49c2e01ce374bc3f7f289972b3d46c1204c8
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Sep 16 17:20:16 2021 +0100

    SshProxy: display auth banners from proxy connections.
    
    Now the banners (plus their surrounding antispoof prompts) have their
    own SeatOutputType, it's easy to distinguish them in sshproxy_output
    and do the right thing with them.

 sshproxy.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

commit adf6b698e4867fd229e956eff277a53b4021738e
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=adf6b698e4867fd229e956eff277a53b4021738e;hp=5ca0a7563671c3a088617d6f120a45078a01fe17
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Sep 16 17:21:03 2021 +0100

    SshProxy: reset trust status after setup completes.
    
    The next backend that tries to use the connection we're now proxying
    is going to expect the seat's trust status to be in trusted mode,
    because that's how things normally start up when a backend is
    initialised. So we should set it back to that state before handing on
    to that backend.

 sshproxy.c | 4 ++++
 1 file changed, 4 insertions(+)

commit fb663d4761c221fed090ff98d891a9883e76cbb3
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=fb663d4761c221fed090ff98d891a9883e76cbb3;hp=adf6b698e4867fd229e956eff277a53b4021738e
Author: Simon Tatham <anakin at pobox.com>
Date:   Thu Sep 16 11:43:02 2021 +0100

    Promote ssh2_userauth_antispoof_msg into utils.
    
    It doesn't actually do anything specific to the userauth layer; it's
    just a helper function that deals with the mechanics of printing an
    unspoofable message on various kinds of front end, and the only
    parameters it needs are a Seat and a message.
    
    Currently, it's used for 'here is the start/end of the server banner'
    only. But it's also got all the right functionality to be used for the
    (still missing) messages about which proxy SSH server the next set of
    login prompts are going to refer to.

 putty.h                |  4 ++++
 ssh/userauth2-client.c | 47 ++++++++++-------------------------------------
 utils/CMakeLists.txt   |  1 +
 utils/antispoof.c      | 28 ++++++++++++++++++++++++++++
 4 files changed, 43 insertions(+), 37 deletions(-)



More information about the tartarus-commits mailing list