Have example sftp servers handle session EOF

As the EOF is expected when the client quits the session, have the
example servers handle it more gracefully so it is less confusing.

Fixes #169
This commit is contained in:
John Eikenberry 2017-03-07 12:29:34 -08:00
parent b5277106cc
commit 7aa3e48656
2 changed files with 10 additions and 2 deletions

View File

@ -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)
}
}

View File

@ -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)
}
}