Skip to content
Snippets Groups Projects
  1. Apr 10, 2021
    • Simon Tatham's avatar
      New GUI for protocol selection. · 0f9e0d6e
      Simon Tatham authored
      This replaces the pure radio-button setup that we've always had on the
      Session config panel.
      
      Since the last release, that set of radio buttons has been getting out
      of hand. We've added two new protocols (SUPDUP, and the 'bare
      ssh-connection' aka psusan protocol), neither of which is mainstream
      enough to be a sensible thing to wave at all users on the front page
      of the config GUI, so that they perhaps start wondering if that's the
      protocol they want to use, or get sidetracked by going and looking it
      up.
      
      The replacement UI still has radio buttons, but only for the most
      common protocols, which will typically be SSH and serial. Everything
      else is relegated to a drop-down list sitting next to a third radio
      button labelled "Other".
      
      In every be_* module providing a backends[] list, there's also a
      variable n_ui_backends which indicates how many of the backends ought
      to appear as first-level radio buttons.
      
      (Credit where due: this patch is a joint effort between Jacob and me,
      and is one of those rare cases where it would be nice to be able to
      put both our names into the Author field of the commit. Failing that,
      I can at least mention it here.)
      0f9e0d6e
  2. Feb 22, 2020
    • Simon Tatham's avatar
      Permit protocol selection in file transfer tools. · 91c2e6b4
      Simon Tatham authored
      PSCP and PSFTP can only work over a protocol enough like SSH to be
      able to run subsystems (or at the very least a remote command, for
      old-style PSCP). Historically we've implemented this restriction by
      having them not support any protocol-selection command-line options at
      all, and hardwiring them to instantiating ssh_backend.
      
      This commit regularises them to be more like the rest of the tools.
      You can select a protocol using the appropriate command-line option,
      provided it's a protocol in those tools' backends[] array. And the
      setup code will find the BackendVtable to instantiate by the usual
      method of calling backend_vt_from_proto.
      
      Currently, this makes essentially no difference: those tools link in
      be_ssh.c, which means the only supported backend is SSH. So the effect
      is that now -ssh is an accepted option with no effect, instead of
      being rejected. But it opens the way to add other protocols that are
      SSH-like enough to run file transfer over.
      91c2e6b4
  3. Oct 06, 2018
  4. Sep 19, 2018
    • Simon Tatham's avatar
      Turn Backend into a sensible classoid. · eefebaaa
      Simon Tatham authored
      Nearly every part of the code that ever handles a full backend
      structure has historically done it using a pair of pointer variables,
      one pointing at a constant struct full of function pointers, and the
      other pointing to a 'void *' state object that's passed to each of
      those.
      
      While I'm modernising the rest of the code, this seems like a good
      time to turn that into the same more or less type-safe and less
      cumbersome system as I'm using for other parts of the code, such as
      Socket, Plug, BinaryPacketProtocol and so forth: the Backend structure
      contains a vtable pointer, and a system of macro wrappers handles
      dispatching through that vtable.
      eefebaaa
  5. Jul 27, 2011
    • Simon Tatham's avatar
      Fix bug in which the SSH-only tools (pscp, psftp) did not honour a · f14953d9
      Simon Tatham authored
      nonstandard port number when loading a saved session.
      
      Occurs because those tools include be_none.c which defines no entries
      in backends[] at all, as a result of which settings.c doesn't
      recognise the word 'ssh' in the saved session's protocol field and
      instead sets the protocol to something idiotic - which _then_ means
      that when pscp.c forces the protocol to PROT_SSH, it also resets the
      port number as it would when overriding a saved session specifying a
      protocol other than SSH.
      
      The immediate solution is to define a new be_ssh.c citing only
      ssh_backend, and include that in the SSH-only tools. However, I wonder
      if a better approach (perhaps when I redesign session loading and
      saving) would be not to be so clever, and just have all the tools
      contain a complete list of known protocol names for purposes of
      understanding what's in the saved session data, and complain if you
      try to use one they don't know how to actually speak.
      
      [originally from svn r9254]
      f14953d9
Loading