SSH.NET icon indicating copy to clipboard operation
SSH.NET copied to clipboard

Not able to send Window Change Request from ShellStream

Open glenkleidon opened this issue 2 years ago • 2 comments

After opening a SshClient Connection (calling CreateShell) there is no way to call SendWindowChangeRequest because _channel (IChannelSession) is an internal field and not accessible.

The solution appears to be surfacing the SendWindowChangeRequest in the ShellStream class. I note other requests like ChangeFlow etc. would remain inaccessible though.

The alternative is to surface the IChannelSession interface and make it a read only property to get references to all the underlying methods. But that is 2 levels of abstraction more primitive than the client - so implementing a method "WindowChangeRequest" thats calls the IChannelSession.SendWindowChangeRequest method is most obvious, but that would suggest implementing a wrapper to all the other methods: SendPseudoTerminalRequest, SendX11ForwardingRequest - ie practically the whole IChannel Interface.

So I recommend surfacing the IChannelSession as a read only property.

glenkleidon avatar Dec 11 '22 03:12 glenkleidon

It turns out IChannelSession is defined as internal. So back to the other solution. I do see that Client.ConnectionInfo.SupportedRequests can return the supported Requests.

glenkleidon avatar Dec 11 '22 04:12 glenkleidon

I wonder why the IChannelSession is not public?

glenkleidon avatar Dec 11 '22 06:12 glenkleidon