vsudd: Log as we Close both sockets (via defer)

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
This commit is contained in:
Ian Campbell 2016-04-07 17:40:14 +01:00
parent 5c0fd63265
commit 057fb53a6a

View File

@ -106,7 +106,12 @@ func handleOne(connid int, fd int, cid, port uint) {
vsock := os.NewFile(uintptr(fd), fmt.Sprintf("vsock:%d", fd)) vsock := os.NewFile(uintptr(fd), fmt.Sprintf("vsock:%d", fd))
log.Printf("%d Accepted connection on fd %d from %08x.%08x", connid, fd, cid, port) log.Printf("%d Accepted connection on fd %d from %08x.%08x", connid, fd, cid, port)
defer syscall.Close(fd) defer func() {
log.Println(connid, "Closing vsock", fd)
if err := syscall.Close(fd) ; err != nil {
log.Println(connid, "Error closing", fd ":", err)
}
}()
var docker *net.UnixConn var docker *net.UnixConn
var err error var err error
@ -119,13 +124,18 @@ func handleOne(connid int, fd int, cid, port uint) {
} }
time.Sleep(50 * time.Millisecond) time.Sleep(50 * time.Millisecond)
} }
defer docker.Close()
if err != nil { if err != nil {
// If the forwarding program has broken then close and continue // If the forwarding program has broken then close and continue
log.Println(connid, "Failed to connect to Unix domain socket after 10s", sock, err) log.Println(connid, "Failed to connect to Unix domain socket after 10s", sock, err)
return return
} }
defer func() {
log.Println(connid, "Closing docker", docker)
if err := docker.Close() ; err != nil {
log.Println(connid, "Error closing", docker, ":", err)
}
}()
log.Println(connid, "Connected to docker", docker)
w := make(chan int64) w := make(chan int64)
go func() { go func() {