From 824f8ddc319d7f788dac4626743ce85a2c2f396c Mon Sep 17 00:00:00 2001 From: yiranzai Date: Fri, 7 May 2021 19:54:23 +0800 Subject: [PATCH] add engine.parseTrustedProxies to all Run* methods --- gin.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gin.go b/gin.go index 77e52a63..56e5c768 100644 --- a/gin.go +++ b/gin.go @@ -368,7 +368,6 @@ func (engine *Engine) prepareTrustedCIDRs() ([]*net.IPNet, error) { // SetTrustedProxies set Engine.TrustedProxies func (engine *Engine) SetTrustedProxies(trustedProxies []string) error { - //engine.ForwardedByClientIP = true engine.TrustedProxies = trustedProxies return engine.parseTrustedProxies() } @@ -401,6 +400,11 @@ func (engine *Engine) RunTLS(addr, certFile, keyFile string) (err error) { debugPrint("Listening and serving HTTPS on %s\n", addr) defer func() { debugPrintError(err) }() + err = engine.parseTrustedProxies() + if err != nil { + return err + } + err = http.ListenAndServeTLS(addr, certFile, keyFile, engine) return } @@ -412,6 +416,11 @@ func (engine *Engine) RunUnix(file string) (err error) { debugPrint("Listening and serving HTTP on unix:/%s", file) defer func() { debugPrintError(err) }() + err = engine.parseTrustedProxies() + if err != nil { + return err + } + listener, err := net.Listen("unix", file) if err != nil { return @@ -430,6 +439,11 @@ func (engine *Engine) RunFd(fd int) (err error) { debugPrint("Listening and serving HTTP on fd@%d", fd) defer func() { debugPrintError(err) }() + err = engine.parseTrustedProxies() + if err != nil { + return err + } + f := os.NewFile(uintptr(fd), fmt.Sprintf("fd@%d", fd)) listener, err := net.FileListener(f) if err != nil { @@ -445,6 +459,12 @@ 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 = engine.parseTrustedProxies() + if err != nil { + return err + } + err = http.Serve(listener, engine) return }