diff --git a/examples/request-server/main.go b/examples/request-server/main.go index a829824..11b8c44 100644 --- a/examples/request-server/main.go +++ b/examples/request-server/main.go @@ -6,6 +6,7 @@ package main import ( "flag" "fmt" + "io" "io/ioutil" "log" "net" @@ -120,7 +121,10 @@ func main() { root := sftp.InMemHandler() server := sftp.NewRequestServer(channel, root) - if err := server.Serve(); err != nil { + if err := server.Serve(); err == io.EOF { + server.Close() + log.Print("sftp client exited session.") + } else if err != nil { log.Fatal("sftp server completed with error:", err) } } diff --git a/examples/sftp-server/main.go b/examples/sftp-server/main.go index acc4d90..48e0e86 100644 --- a/examples/sftp-server/main.go +++ b/examples/sftp-server/main.go @@ -6,6 +6,7 @@ package main import ( "flag" "fmt" + "io" "io/ioutil" "log" "net" @@ -136,7 +137,10 @@ func main() { if err != nil { log.Fatal(err) } - if err := server.Serve(); err != nil { + if err := server.Serve(); err == io.EOF { + server.Close() + log.Print("sftp client exited session.") + } else if err != nil { log.Fatal("sftp server completed with error:", err) } }