mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-14 20:22:20 +08:00
remove go19 support
This commit is contained in:
parent
085f67940d
commit
a7be92610c
46
gin.go
46
gin.go
@ -17,6 +17,7 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin/internal/bytesconv"
|
"github.com/gin-gonic/gin/internal/bytesconv"
|
||||||
"github.com/gin-gonic/gin/render"
|
"github.com/gin-gonic/gin/render"
|
||||||
|
"github.com/quic-go/quic-go/http3"
|
||||||
"golang.org/x/net/http2"
|
"golang.org/x/net/http2"
|
||||||
"golang.org/x/net/http2/h2c"
|
"golang.org/x/net/http2/h2c"
|
||||||
)
|
)
|
||||||
@ -383,24 +384,6 @@ func iterate(path, method string, routes RoutesInfo, root *node) RoutesInfo {
|
|||||||
return routes
|
return routes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Run attaches the router to a http.Server and starts listening and serving HTTP requests.
|
|
||||||
// It is a shortcut for http.ListenAndServe(addr, router)
|
|
||||||
// Note: this method will block the calling goroutine indefinitely unless an error happens.
|
|
||||||
func (engine *Engine) Run(addr ...string) (err error) {
|
|
||||||
defer func() { debugPrintError(err) }()
|
|
||||||
|
|
||||||
if engine.isUnsafeTrustedProxies() {
|
|
||||||
debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" +
|
|
||||||
"Please check https://github.com/gin-gonic/gin/blob/master/docs/doc.md#dont-trust-all-proxies for details.")
|
|
||||||
}
|
|
||||||
|
|
||||||
address := resolveAddress(addr)
|
|
||||||
debugPrint("Listening and serving HTTP on %s\n", address)
|
|
||||||
err = http.ListenAndServe(address, engine.Handler())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (engine *Engine) prepareTrustedCIDRs() ([]*net.IPNet, error) {
|
func (engine *Engine) prepareTrustedCIDRs() ([]*net.IPNet, error) {
|
||||||
if engine.trustedProxies == nil {
|
if engine.trustedProxies == nil {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
@ -504,14 +487,7 @@ func parseIP(ip string) net.IP {
|
|||||||
return parsedIP
|
return parsedIP
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
// Run attaches the router to a http.Server and starts listening and serving HTTP requests.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
attaches the router to a http.Server and starts listening and serving HTTP requests.
|
|
||||||
// It is a shortcut for http.ListenAndServe(addr, router)
|
// It is a shortcut for http.ListenAndServe(addr, router)
|
||||||
// Note: this method will block the calling goroutine indefinitely unless an error happens.
|
// Note: this method will block the calling goroutine indefinitely unless an error happens.
|
||||||
func (engine *Engine) Run(addr ...string) (err error) {
|
func (engine *Engine) Run(addr ...string) (err error) {
|
||||||
@ -519,7 +495,7 @@ func (engine *Engine) Run(addr ...string) (err error) {
|
|||||||
|
|
||||||
if engine.isUnsafeTrustedProxies() {
|
if engine.isUnsafeTrustedProxies() {
|
||||||
debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" +
|
debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" +
|
||||||
"Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.")
|
"Please check https://github.com/gin-gonic/gin/blob/master/docs/doc.md#dont-trust-all-proxies for details.")
|
||||||
}
|
}
|
||||||
|
|
||||||
address := resolveAddress(addr)
|
address := resolveAddress(addr)
|
||||||
@ -589,6 +565,22 @@ func (engine *Engine) RunFd(fd int) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RunQUIC attaches the router to a http.Server and starts listening and serving QUIC requests.
|
||||||
|
// It is a shortcut for http3.ListenAndServeQUIC(addr, certFile, keyFile, router)
|
||||||
|
// Note: this method will block the calling goroutine indefinitely unless an error happens.
|
||||||
|
func (engine *Engine) RunQUIC(addr, certFile, keyFile string) (err error) {
|
||||||
|
debugPrint("Listening and serving QUIC on %s\n", addr)
|
||||||
|
defer func() { debugPrintError(err) }()
|
||||||
|
|
||||||
|
if engine.isUnsafeTrustedProxies() {
|
||||||
|
debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" +
|
||||||
|
"Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = http3.ListenAndServeQUIC(addr, certFile, keyFile, engine.Handler())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// RunListener attaches the router to a http.Server and starts listening and serving HTTP requests
|
// RunListener attaches the router to a http.Server and starts listening and serving HTTP requests
|
||||||
// through the specified net.Listener
|
// through the specified net.Listener
|
||||||
func (engine *Engine) RunListener(listener net.Listener) (err error) {
|
func (engine *Engine) RunListener(listener net.Listener) (err error) {
|
||||||
|
27
gin_1.19.go
27
gin_1.19.go
@ -1,27 +0,0 @@
|
|||||||
// Copyright 2023 Gin Core Team. All rights reserved.
|
|
||||||
// Use of this source code is governed by a MIT style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build go1.19
|
|
||||||
|
|
||||||
package gin
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/quic-go/quic-go/http3"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RunQUIC attaches the router to a http.Server and starts listening and serving QUIC requests.
|
|
||||||
// It is a shortcut for http3.ListenAndServeQUIC(addr, certFile, keyFile, router)
|
|
||||||
// Note: this method will block the calling goroutine indefinitely unless an error happens.
|
|
||||||
func (engine *Engine) RunQUIC(addr, certFile, keyFile string) (err error) {
|
|
||||||
debugPrint("Listening and serving QUIC on %s\n", addr)
|
|
||||||
defer func() { debugPrintError(err) }()
|
|
||||||
|
|
||||||
if engine.isUnsafeTrustedProxies() {
|
|
||||||
debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" +
|
|
||||||
"Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.")
|
|
||||||
}
|
|
||||||
|
|
||||||
err = http3.ListenAndServeQUIC(addr, certFile, keyFile, engine.Handler())
|
|
||||||
return
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
// Copyright 2023 Gin Core Team. All rights reserved.
|
|
||||||
// Use of this source code is governed by a MIT style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build go1.19
|
|
||||||
|
|
||||||
package gin
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
"testing"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestRunQUIC(t *testing.T) {
|
|
||||||
router := New()
|
|
||||||
go func() {
|
|
||||||
router.GET("/example", func(c *Context) { c.String(http.StatusOK, "it worked") })
|
|
||||||
|
|
||||||
assert.NoError(t, router.RunQUIC(":8443", "./testdata/certificate/cert.pem", "./testdata/certificate/key.pem"))
|
|
||||||
}()
|
|
||||||
|
|
||||||
// have to wait for the goroutine to start and run the server
|
|
||||||
// otherwise the main thread will complete
|
|
||||||
time.Sleep(5 * time.Millisecond)
|
|
||||||
|
|
||||||
assert.Error(t, router.RunQUIC(":8443", "./testdata/certificate/cert.pem", "./testdata/certificate/key.pem"))
|
|
||||||
testRequest(t, "https://localhost:8443/example")
|
|
||||||
}
|
|
@ -274,6 +274,22 @@ func TestBadUnixSocket(t *testing.T) {
|
|||||||
assert.Error(t, router.RunUnix("#/tmp/unix_unit_test"))
|
assert.Error(t, router.RunUnix("#/tmp/unix_unit_test"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRunQUIC(t *testing.T) {
|
||||||
|
router := New()
|
||||||
|
go func() {
|
||||||
|
router.GET("/example", func(c *Context) { c.String(http.StatusOK, "it worked") })
|
||||||
|
|
||||||
|
assert.NoError(t, router.RunQUIC(":8443", "./testdata/certificate/cert.pem", "./testdata/certificate/key.pem"))
|
||||||
|
}()
|
||||||
|
|
||||||
|
// have to wait for the goroutine to start and run the server
|
||||||
|
// otherwise the main thread will complete
|
||||||
|
time.Sleep(5 * time.Millisecond)
|
||||||
|
|
||||||
|
assert.Error(t, router.RunQUIC(":8443", "./testdata/certificate/cert.pem", "./testdata/certificate/key.pem"))
|
||||||
|
testRequest(t, "https://localhost:8443/example")
|
||||||
|
}
|
||||||
|
|
||||||
func TestFileDescriptor(t *testing.T) {
|
func TestFileDescriptor(t *testing.T) {
|
||||||
router := New()
|
router := New()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user