From: David du Colombier <0intro@gmail.com> Date: Wed, 26 Apr 2017 07:27:15 +0000 (+0200) Subject: net: fix close on closed listener on Plan 9 X-Git-Tag: go1.9beta1~460 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=8a4087aee64e7f0f73c9e286e159ab9bc5f564bf;p=gostls13.git net: fix close on closed listener on Plan 9 Since close errors have been cleaned up in CL 39997, TestCloseError is failing on Plan 9, because TCPListener.Close didn't check that the listener has already been closed before writing the "hangup" string to the listener control file. This change fixes TCPListener.Close on Plan 9, by closing poll.FD before writing the "hangup" string. Fixes #20128. Change-Id: I13862b23a9055dd1be658acef7066707d98c591f Reviewed-on: https://go-review.googlesource.com/41850 Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/net/tcpsock_plan9.go b/src/net/tcpsock_plan9.go index d2860607f8..e37f0657c0 100644 --- a/src/net/tcpsock_plan9.go +++ b/src/net/tcpsock_plan9.go @@ -48,6 +48,9 @@ func (ln *TCPListener) accept() (*TCPConn, error) { } func (ln *TCPListener) close() error { + if err := ln.fd.pfd.Close(); err != nil { + return err + } if _, err := ln.fd.ctl.WriteString("hangup"); err != nil { ln.fd.ctl.Close() return err