diff --git a/terminal_handler.go b/terminal_handler.go index 5f0c335..285e9d4 100644 --- a/terminal_handler.go +++ b/terminal_handler.go @@ -20,11 +20,9 @@ func newInternalTerminalHandler(shellCharacter, welcomeMessage string, commandRe } } -func clearLine(w telnet.Writer) { +func clearLine(w telnet.Writer) error { _, err := w.RawWrite([]byte{0x1B, 0x5B, 0x4B}) - if err != nil { - return - } + return err } func (handler *internalTerminalHandler) ServeTELNET(ctx telnet.Context, w telnet.Writer, r telnet.Reader) { @@ -75,7 +73,9 @@ func (handler *internalTerminalHandler) ServeTELNET(ctx telnet.Context, w telnet clients[clientID].HistoryIndex++ } lineBuffer = []byte(clients[clientID].History[clients[clientID].HistoryIndex]) - clearLine(w) + if clearLine(w) != nil { + return + } _, err := w.Write(lineBuffer) if err != nil { return @@ -87,7 +87,9 @@ func (handler *internalTerminalHandler) ServeTELNET(ctx telnet.Context, w telnet clients[clientID].HistoryIndex-- } lineBuffer = []byte(clients[clientID].History[clients[clientID].HistoryIndex]) - clearLine(w) + if clearLine(w) != nil { + return + } _, err := w.Write(lineBuffer) if err != nil { return