Write handles process->pty stdout Called from remotecommand whenever there is any output
(p []byte)
| 102 | // Write handles process->pty stdout |
| 103 | // Called from remotecommand whenever there is any output |
| 104 | func (t TerminalSession) Write(p []byte) (int, error) { |
| 105 | session := TerminalSessions.Get(t.Id) |
| 106 | if session.TimeOut.Before(time.Now()) { |
| 107 | _ = TerminalSessions.Sessions[session.Id].sockJSSession.Close(2, "the connection has been disconnected. Please reconnect") |
| 108 | return 0, errors.New("the connection has been disconnected. Please reconnect") |
| 109 | } |
| 110 | TerminalSessions.Set(session.Id, session) |
| 111 | msg, err := json.Marshal(TerminalMessage{ |
| 112 | Op: "stdout", |
| 113 | Data: string(p), |
| 114 | }) |
| 115 | if err != nil { |
| 116 | return 0, err |
| 117 | } |
| 118 | |
| 119 | if err = session.sockJSSession.Send(string(msg)); err != nil { |
| 120 | return 0, err |
| 121 | } |
| 122 | return len(p), nil |
| 123 | } |
| 124 | |
| 125 | // Toast can be used to send the user any OOB messages |
| 126 | // hterm puts these in the center of the terminal |
no test coverage detected