From efefc7692910be57dff979390d6e193a0cf4b5ee Mon Sep 17 00:00:00 2001 From: Cyberes Date: Sun, 2 Jun 2024 14:13:54 -0600 Subject: [PATCH] fix header checking --- src/proxy/handleConnect.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/proxy/handleConnect.go b/src/proxy/handleConnect.go index 9e64a0e..fed2d6b 100644 --- a/src/proxy/handleConnect.go +++ b/src/proxy/handleConnect.go @@ -51,11 +51,11 @@ func (p *ForwardProxyCluster) validateRequestAndGetProxy(w http.ResponseWriter, return "", "", "", "", nil, errors.New(errStr) } - headerIncludeBrokenThirdparty := req.Header.Get(HeaderThirdpartyIncludeBroken) + headerIncludeBrokenThirdparty := req.Header.Get(HeaderThirdpartyIncludeBroken) != "" req.Header.Del(HeaderThirdpartyIncludeBroken) - headerBypassThirdparty := req.Header.Get(HeaderThirdpartyBypass) + headerBypassThirdparty := req.Header.Get(HeaderThirdpartyBypass) != "" req.Header.Del(HeaderThirdpartyBypass) - if headerBypassThirdparty != "" && headerIncludeBrokenThirdparty != "" { + if headerBypassThirdparty && headerIncludeBrokenThirdparty { errStr := "duplicate options headers detected, rejecting request" http.Error(w, errStr, http.StatusBadRequest) return "", "", "", "", nil, errors.New(errStr) @@ -69,9 +69,9 @@ func (p *ForwardProxyCluster) validateRequestAndGetProxy(w http.ResponseWriter, if slices.Contains(config.GetConfig().ThirdpartyBypassDomains, urlHostname) { selectedProxy = p.getProxyFromOurs() } else { - if headerIncludeBrokenThirdparty != "" { + if headerIncludeBrokenThirdparty { selectedProxy = p.getProxyFromAllWithBroken() - } else if headerBypassThirdparty != "" { + } else if headerBypassThirdparty { selectedProxy = p.getProxyFromOurs() } else { selectedProxy = p.getProxyFromAll()