mirror of
https://github.com/antoniomika/sish.git
synced 2026-04-23 00:27:15 +08:00
Fix sni proxying for https with proxy-protocol enabled
This commit is contained in:
+13
-15
@@ -305,8 +305,6 @@ func Start(state *utils.State) {
|
||||
}
|
||||
|
||||
go func() {
|
||||
var httpsListener net.Listener
|
||||
|
||||
// We'll replace this with a custom listener
|
||||
// That listener will then check the hostname of the request and choose the connection to send it to
|
||||
portListener, err := net.Listen("tcp", httpsServer.Addr)
|
||||
@@ -316,6 +314,17 @@ func Start(state *utils.State) {
|
||||
|
||||
pListener := portListener
|
||||
|
||||
if viper.GetBool("proxy-protocol-listener") {
|
||||
hListener := &proxyproto.Listener{
|
||||
Listener: portListener,
|
||||
}
|
||||
|
||||
utils.LoadProxyProtoConfig(hListener)
|
||||
pListener = hListener
|
||||
}
|
||||
|
||||
httpsListener := pListener
|
||||
|
||||
var tH *utils.TCPHolder
|
||||
|
||||
if viper.GetBool("sni-proxy-https") {
|
||||
@@ -342,24 +351,13 @@ func Start(state *utils.State) {
|
||||
|
||||
tH.Balancers.Store("", balancer)
|
||||
|
||||
pListener = &proxyListener{
|
||||
Listener: portListener,
|
||||
httpsListener = &proxyListener{
|
||||
Listener: pListener,
|
||||
Holder: tH,
|
||||
State: state,
|
||||
}
|
||||
}
|
||||
|
||||
if viper.GetBool("proxy-protocol-listener") {
|
||||
hListener := &proxyproto.Listener{
|
||||
Listener: pListener,
|
||||
}
|
||||
|
||||
utils.LoadProxyProtoConfig(hListener)
|
||||
httpsListener = hListener
|
||||
} else {
|
||||
httpsListener = pListener
|
||||
}
|
||||
|
||||
if tH != nil {
|
||||
tH.Listener = httpsListener
|
||||
|
||||
|
||||
Reference in New Issue
Block a user