Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 12, 09:30 UTC
proxyprotocol: Update WrapListener to use ConnPolicyFunc for PROXY protocol (#6485)
* proxyprotocol : Update WrapListener to use ConnPolicyFunc for PROXY protocol support * proxyprotocol : Updated dependency pires/go-proxyproto to pseudo latest version
Prakhar Awasthi committed
Aug 3, 2024 at 22:21 UTC
840094ac65c2c27dbf0be63478d36969a57ce7e0
3 files changed
+9
-6
go.mod
+1
-1
@@ -123,7 +123,7 @@ require (
123
github.com/mitchellh/copystructure v1.2.0 // indirect
124
github.com/mitchellh/go-ps v1.0.0 // indirect
125
github.com/mitchellh/reflectwalk v1.0.2 // indirect
126
- github.com/pires/go-proxyproto v0.7.0
126
+ github.com/pires/go-proxyproto v0.7.1-0.20240628150027-b718e7ce4964
127
github.com/pkg/errors v0.9.1 // indirect
128
github.com/prometheus/client_model v0.5.0 // indirect
129
github.com/prometheus/common v0.48.0 // indirect
go.sum
+2
@@ -322,6 +322,8 @@ github.com/peterbourgon/diskv/v3 v3.0.1 h1:x06SQA46+PKIUftmEujdwSEpIx8kR+M9eLYsU
322
github.com/peterbourgon/diskv/v3 v3.0.1/go.mod h1:kJ5Ny7vLdARGU3WUuy6uzO6T0nb/2gWcT1JiBvRmb5o=
323
github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs=
324
github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4=
325
+github.com/pires/go-proxyproto v0.7.1-0.20240628150027-b718e7ce4964 h1:ct/vxNBgHpASQ4sT8NaBX9LtsEtluZqaUJydLG50U3E=
326
+github.com/pires/go-proxyproto v0.7.1-0.20240628150027-b718e7ce4964/go.mod h1:iknsfgnH8EkjrMeMyvfKByp9TiBZCKZM0jx2xmKqnVY=
327
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
328
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
329
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
modules/caddyhttp/proxyprotocol/listenerwrapper.go
+6
-5
@@ -50,7 +50,7 @@ type ListenerWrapper struct {
50
// Policy definitions are here: https://pkg.go.dev/github.com/pires/go-proxyproto@v0.7.0#Policy
51
FallbackPolicy Policy `json:"fallback_policy,omitempty"`
52
53
- policy goproxy.PolicyFunc
53
+ policy goproxy.ConnPolicyFunc
54
}
55
56
// Provision sets up the listener wrapper.
@@ -69,13 +69,14 @@ func (pp *ListenerWrapper) Provision(ctx caddy.Context) error {
69
}
70
pp.deny = append(pp.deny, ipnet)
71
}
72
- pp.policy = func(upstream net.Addr) (goproxy.Policy, error) {
72
+
73
+ pp.policy = func(options goproxy.ConnPolicyOptions) (goproxy.Policy, error) {
74
// trust unix sockets
74
- if network := upstream.Network(); caddy.IsUnixNetwork(network) {
75
+ if network := options.Upstream.Network(); caddy.IsUnixNetwork(network) {
76
return goproxy.USE, nil
77
}
78
ret := pp.FallbackPolicy
78
- host, _, err := net.SplitHostPort(upstream.String())
79
+ host, _, err := net.SplitHostPort(options.Upstream.String())
80
if err != nil {
81
return goproxy.REJECT, err
82
}
@@ -106,6 +107,6 @@ func (pp *ListenerWrapper) WrapListener(l net.Listener) net.Listener {
107
Listener: l,
108
ReadHeaderTimeout: time.Duration(pp.Timeout),
109
}
109
- pl.Policy = pp.policy
110
+ pl.ConnPolicy = pp.policy
111
return pl
112
}