fix: Duplicate close net.Listener

http/server.go:
line: 3016
net.Listener is close in func http.Server.Serve() by default.

// Some code piece of http.Server.Serve()
func (srv *Server) Serve(l net.Listener) error {
	if fn := testHookServerServe; fn != nil {
		fn(srv, l) // call hook with unwrapped listener
	}

	origListener := l
	l = &onceCloseListener{Listener: l}
	// HERE: listener is close by default
	defer l.Close()
This commit is contained in:
Wang Yaofu 2022-06-15 16:20:18 +08:00 committed by GitHub
parent 05caa5c00e
commit 2e5c5cc8a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

2
gin.go
View File

@ -518,7 +518,6 @@ func (engine *Engine) RunUnix(file string) (err error) {
if err != nil {
return
}
defer listener.Close()
defer os.Remove(file)
err = http.Serve(listener, engine.Handler())
@ -542,7 +541,6 @@ func (engine *Engine) RunFd(fd int) (err error) {
if err != nil {
return
}
defer listener.Close()
err = engine.RunListener(listener)
return
}