added proxy protocol
This commit is contained in:
17
internal/net/proxyproto/conn.go
Normal file
17
internal/net/proxyproto/conn.go
Normal file
@ -0,0 +1,17 @@
|
||||
package proxyproto
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
proxyproto "github.com/pires/go-proxyproto"
|
||||
)
|
||||
|
||||
func WrapClientConn(ppv int, src, dst net.Addr, c net.Conn) net.Conn {
|
||||
if ppv <= 0 {
|
||||
return c
|
||||
}
|
||||
|
||||
header := proxyproto.HeaderProxyFromAddrs(byte(ppv), src, dst)
|
||||
header.WriteTo(c)
|
||||
return c
|
||||
}
|
19
internal/net/proxyproto/listener.go
Normal file
19
internal/net/proxyproto/listener.go
Normal file
@ -0,0 +1,19 @@
|
||||
package proxyproto
|
||||
|
||||
import (
|
||||
"net"
|
||||
"time"
|
||||
|
||||
proxyproto "github.com/pires/go-proxyproto"
|
||||
)
|
||||
|
||||
func WrapListener(ppv int, ln net.Listener, readHeaderTimeout time.Duration) net.Listener {
|
||||
if ppv <= 0 {
|
||||
return ln
|
||||
}
|
||||
|
||||
return &proxyproto.Listener{
|
||||
Listener: ln,
|
||||
ReadHeaderTimeout: readHeaderTimeout,
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user