diff --git a/demo/client/client.go b/demo/client/client.go index aaeda89..9621fca 100644 --- a/demo/client/client.go +++ b/demo/client/client.go @@ -168,6 +168,7 @@ func main() { // exit with outerr == nil _, outerr := io.Copy(conn, os.Stdin) if outerr != nil { + log.Println(outerr) if outerr.Error() != "EOF" { fmt.Println(outerr) os.Exit(2) diff --git a/demo/server/server.go b/demo/server/server.go index bbdd6c6..ac8a362 100644 --- a/demo/server/server.go +++ b/demo/server/server.go @@ -121,9 +121,9 @@ func runShellAs(who string, cmd string, interactive bool, conn hkex.Conn) (err e //err = c.Run() // returns when c finishes. + log.Printf("[%s]\n", cmd) if err != nil { log.Printf("Command finished with error: %v", err) - log.Printf("[%s]\n", cmd) } return } diff --git a/hkexnet.go b/hkexnet.go index b74407e..6858902 100644 --- a/hkexnet.go +++ b/hkexnet.go @@ -314,13 +314,13 @@ func (c Conn) Read(b []byte) (n int, err error) { err = binary.Read(c.c, binary.BigEndian, &hmacIn) // Normal client 'exit' from interactive session will cause // (on server side) err.Error() == ": use of closed network connection" - if err != nil && err.Error() != "EOF" { + if err != nil { if !strings.HasSuffix(err.Error(), "use of closed network connection") { log.Println("unexpected Read() err:", err) } else { log.Println("[Client hung up]") - return 0, io.EOF } + return 0, err } //if err != nil { @@ -424,7 +424,8 @@ func (c Conn) Write(b []byte) (n int, err error) { n, err = c.c.Write(wb.Bytes()) if err != nil { - panic(err) + //panic(err) + log.Println(err) } return }