Ferreteria/v0.6/clade/IO/Aspect/Connx/run/Session/Remote/SSH2

From WoozleCodes
Jump to navigation Jump to search
clade: IO\Aspect\Connx\run\Session\Remote\SSH2
Clade Family
Remote SSH2 (none)
Clade Aliases
Alias Clade
AppAdmin \App
Base* [ca,i] IO\Aspect\Connx\run\Session\Remote
Canals* [c,i] IO\Aspect\Connx\aux\A\Canals
CommandIface IO\Aspect\Connx\run\Command
ConveyClass IO\Aspect\Connx\Canal
EventOnMsg Sys\Events\Event\Loops\OnMessage
EventOnReset IO\Aspect\Connx\Stream\aux\Event\Reset
RExecTrait IO\Aspect\Connx\run\Session\common\HasRExec
OpCmd* [c,i] IO\Aspect\Connx\run\Starter\ops\OpCmdOpCmdIface };
OpOpen* [c,i] Sys\Events\ItWent\connx\OpOpen
OpShut* [c,i] Sys\Events\ItWent\connx\OpShut
QRes* [c,i] Data\Mem\QVar\RW\Res
SelfIface IO\Aspect\Connx\run\Session\Remote\SSH2
StreamClass Sys\InOut\Connx\Stream\Exec\SSH2
StreamIface Sys\InOut\Connx\Stream
Subpages

History

date what
2026-07-29
  • changed property-functions to actual properties
  • changed base-class from Futilities App to Ferreteria App
  • moved $RExec to common trait
  • in IsRunning(), I think I was still confused about exec resources vs. stream resources:
    • stream_select() expects arrays of stream-resources, and I was passing it RExec for the first two arrays; passing Stream resources now (but see 2026-08-01 for an update).
    • This required making RNative (which should be renamed RStrm) public.
  • #TODO: All of the code which uses PHP-native functions should be moved into Core clades so they can be swapped out for phpseclib if needed.
2026-08-01 ...but actually, it turns out RExec is a stream, and it is used for setting up the Stream-objects (later, on demand). Possibly it should still be renamed $RStrm, to avoid confusion like this.
  • Update: done. Note that $RExec is still used in IO\Aspect\Connx\run\Starter\Local\Proc (a Starter, not a Session) because it's a handle to the process rather than a primary stream. The corresponding resource-handle in IO\Aspect\Connx\run\Session\Remote\SSH2 is $RConn, via $QRConn -- maybe that should be renamed to $RExec?
  • Note that there is a reason why the executable-resource is in the Starter for Local Proc but in the Session for Remote SSH2. It has something to do with how the underlying libraries work, and I'm pretty sure I documented it... somewhere.