You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by "StompDagger1@yahoo.com" <st...@yahoo.com> on 2010/12/21 18:39:02 UTC

org.apache.commons.net.bsd.RLoginClient doesn't flush output

hello, I have a java program which connects to a unix account and needs to run 
some local scripts, the code looks like this:
        RLoginClient connection=new RLoginClient();
        String lUser=System.getProperty("user.name"),lHost;
        try {
            lHost=InetAddress.getLocalHost().getHostName();
            RExecClient rExecClient=new RExecClient();
            rExecClient.connect(this.mHost);
            rExecClient.rexec(this.mUser,this.mPasswd,"if [ -f 
"+'"'+".rhosts"+'"'+" ]; then cp .rhosts .rhosts.bak; fi; echo "+'\"'+lHost+" 
"+lUser+"\n"+lHost+".amdocs.com "+lUser+"\n"+lHost+".corp.amdocs.com 
"+lUser+'"'+" >> ~/.rhosts");
            rExecClient.disconnect();
            connection.connect(this.mHost);
            connection.rlogin(lUser,this.mUser,"xterm");
        }
        catch (SocketException e) {
            ...
        }
        catch (IOException e) {
            try {
                connection.disconnect();
            }
            catch (IOException f) {
            ...
        }
        OutputStreamWriter virtualKeyboard=new 
OutputStreamWriter(connection.getOutputStream());
        InputStreamReader virtualScreen=new 
InputStreamReader(connection.getInputStream());
        try {
            virtualKeyboard.write("if [ ! -d installer ]; then mkdir installer; 
chmod 755 installer; fi;".toCharArray());
            virtualKeyboard.flush();

the first rexec works and the command gets executed, but the two last lines get 
executed but on the unix side, I cannot see the output e.g. the folder, copying 
the line as is and running it in unix works.
this leads me to believe that the buffer doesn't get flushed.
how can I fix this?
I'm using latest jars from site and java 1.6 update 14.

thanks.


 
: "    ,               ".


An wise Scandinavian old man once said: "in the end, everything is going to be 
alright"