mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-17 22:32:26 +08:00
engine holds original http server to use all http server functions
This commit is contained in:
parent
b01605bb5b
commit
beb45d8da1
14
gin.go
14
gin.go
@ -103,6 +103,8 @@ type Engine struct {
|
||||
// See the PR #1817 and issue #1644
|
||||
RemoveExtraSlash bool
|
||||
|
||||
Server *http.Server
|
||||
|
||||
delims render.Delims
|
||||
secureJSONPrefix string
|
||||
HTMLRender render.HTMLRender
|
||||
@ -307,7 +309,8 @@ func (engine *Engine) Run(addr ...string) (err error) {
|
||||
|
||||
address := resolveAddress(addr)
|
||||
debugPrint("Listening and serving HTTP on %s\n", address)
|
||||
err = http.ListenAndServe(address, engine)
|
||||
engine.Server = &http.Server{Addr: address, Handler: engine}
|
||||
err = engine.Server.ListenAndServe()
|
||||
return
|
||||
}
|
||||
|
||||
@ -318,7 +321,8 @@ func (engine *Engine) RunTLS(addr, certFile, keyFile string) (err error) {
|
||||
debugPrint("Listening and serving HTTPS on %s\n", addr)
|
||||
defer func() { debugPrintError(err) }()
|
||||
|
||||
err = http.ListenAndServeTLS(addr, certFile, keyFile, engine)
|
||||
engine.Server = &http.Server{Addr: addr, Handler: engine}
|
||||
err = engine.Server.ListenAndServeTLS(certFile, keyFile)
|
||||
return
|
||||
}
|
||||
|
||||
@ -336,7 +340,8 @@ func (engine *Engine) RunUnix(file string) (err error) {
|
||||
defer listener.Close()
|
||||
defer os.Remove(file)
|
||||
|
||||
err = http.Serve(listener, engine)
|
||||
engine.Server = &http.Server{Handler: engine}
|
||||
err = engine.Server.Serve(listener)
|
||||
return
|
||||
}
|
||||
|
||||
@ -362,7 +367,8 @@ func (engine *Engine) RunFd(fd int) (err error) {
|
||||
func (engine *Engine) RunListener(listener net.Listener) (err error) {
|
||||
debugPrint("Listening and serving HTTP on listener what's bind with address@%s", listener.Addr())
|
||||
defer func() { debugPrintError(err) }()
|
||||
err = http.Serve(listener, engine)
|
||||
engine.Server = &http.Server{Handler: engine}
|
||||
err = engine.Server.Serve(listener)
|
||||
return
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user