Closed netixx closed 7 months ago
@netixx sorry for the big changes -- let me know if you are good with this.
I did what you did, just with std library since (for now?) we want to keep that crypto pin for 1.16 happiness.
annnnd I just saw it failed in ci (worked on my machine!) so will investigate that.
I think im going to merge this and then the other branch to main so that I can get tmate setup working so I can troubleshoot the system transport in ci issue. python version of this works w/ the TERM env set so not sure what's up here. @netixx comment back here or ill catch ya in discord if you wanna see any changes/tweaks to this!
ok, test fixed/ci passing now :)
System transport can get stuck on the Read call because of pty implementation details (see https://github.com/scrapli/scrapligo/issues/174) for more details.
This makes sure that we kill the SSH process when the transport is closed, and in turn makes sure that the rest of the components (channel, drivers) can shutdown properly.
I also added a test simulating a blocking (stuck) SSH server and a non blokcing SSH server (non blocking showed that it's fine to kill an already defunct process).