You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Oskar Z <os...@yahoo.com.INVALID> on 2020/10/26 22:27:56 UTC
Re: SSHD Custom ShellFactory
Let me see if I could put some more details around this.
So I have two problems. I think they are around PtyModes.
1. The carriage return is not honored no matter what I options I use. I’m just simply trying to get it to work in Mac/Linux environment. Unless I specifically add \r\n it does not want to work.
2. When I type in a regular SSH session, I see characters as I type them. In Apache SSHD, I don’t see my input, but once I enter, it does send it over for execution.
So I have created a custom ShellFactory and Command, that will execute Java code on the input provided in the shell.
private class CLIShellFactory implements ShellFactory {
public Command createShell(ChannelSession channelSession) {
return new CLIShell();
}
private class CLIShell implements Command, Runnable {
At first I was using regular InputStream and OutpuStream, but then I saw some code using TtyFilterInputStream and TtyFilterOutputStream, so I tried to convert my code to use these, and provide PtyModes. But I’m still having issues with it. Also, the TtyFilterOutputStream requires the following for echo to work:
public TtyFilterOutputStream(OutputStream out, TtyFilterInputStream echo, Collection<PtyMode> ttyOptions) {
If I use TtyFilterInputStream echo and set my InputStream, I will get into an infinite loop! So I have set it to null, and removed PtyMode.ECHO, but I do need it.
Any light on what I’m doing wrong here?
Is there a ShellFactory where I can just override one method and execute my custom Java code which will enable me to have proper new lines and carriage returns and echo enabled?
I would really appreciate someone who has experience with this to give me some guidance. I have searched the web and cannot seem to find anything.
I did find this that I think has similar problem, which was old thread:
http://apache-mina.10907.n7.nabble.com/sshd-clients-and-echo-td28501.html <http://apache-mina.10907.n7.nabble.com/sshd-clients-and-echo-td28501.html>
Hope someone can help…
Regards,
Oskar
> On Oct 21, 2020, at 7:13 PM, Oskar Z <os...@yahoo.com> wrote:
>
>
>
>> On Oct 21, 2020, at 3:40 PM, Oskar Z <oskarzn@yahoo.com <ma...@yahoo.com>> wrote:
>>
>> Hello,
>>
>> Hope someone can help or point in the right direction.
>>
>> I have created my custom ShellFactory and Command, and commands get executed fine in-app, but the problem is formatting of output, and I cannot see what I type until I hit “enter” and output is not seen until I use out.flush().
>>
>> It seems to have some tabs…..
>>
>> NodeID, TypeName, OperatorActions, Links
>> -----------------------
>> Types,Types,com.micromuse.response.common.TypeOrgNodeIdentifier#com.micromuse.response.dblayer.TypeOrgNode#9900#Types#Types,Types,
>> ,Link Types:
>> ENDRECORD
>>
>> READY
>> Execution Failed. Check impactserver.log for details.
>> READY
>>
>> READY
>> READY
>>
>> Thanks,
>> Oskar
>>
>