Menu

#51 Error en parseig de sortida de comandes llargues via telnet

1.0.14
open
nobody
5
2013-01-14
2013-01-12
Toni Moreno
No

Al executar scripts amb sat-remotedo o sat-sexec ( per exemple)

#sat-sexec -m itsat-sg00 -s ./testtelnet.sh

Interfament se li envia al metode telnetfot::exec() la següent comanda:

chmod a+rx /tmp/13579715562134456088; /tmp/13579715562134456088 ; rm /tmp/13579715562134456088

Encara que la execució es correcta, la sortida es trunca i apareixen spais en blanc i backspaces ( com si el numero de línies i de columnes del terminal fos inferior i tractes de fer un \n ),de tal manera que no sabem parsejar la sortida y no es veu be

=====================

He investiga i el protocol telnet te una serie de opcions per setejar paràmetres de terminal remot ( com la finestra ) es probable que haguem de setejar una finestra mes gran que el numero de caràcters de comanda per evitar sortides truncades

Discussion

  • Toni Moreno

    Toni Moreno - 2013-01-12
     
  • Toni Moreno

    Toni Moreno - 2013-01-14

    S'afegeix negociació pasiva ( només si demana el servidor) i sembla que es corretgeix el problema.

                       $this->debug("TELNETFTP:Received control command: ".ord($c)." option: Window Size");
                        //$this->sendDefaultResponse($c,$opt);
                        if($c == $this->DO || $c == $this->DONT) {
                                $this->debug("TELNETFTP: Sendind  option: Window Size");
                                $this->telnetCmdWrite($this->WILL.$this->NAWS);
                                $this->sendWindowSize(220,24);
    
                        } else {
                                $this->debug("TELNETFTP: Sendind  Default response $c: Window Size");
                                $this->sendDefaultResponse($c,$opt);
                        }
    
     
MongoDB Logo MongoDB