mirror of
https://github.com/tailscale/tailscale.git
synced 2025-07-30 15:53:45 +00:00
control/controlhttp: quiet "forcing port 443" log spam
Minimal mitigation that doesn't do the full refactor that's probably warranted. Updates #15402 Change-Id: I79fd91de0e0661d25398f7d95563982ed1d11561 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
725c8d298a
commit
5aa1c27aad
@ -96,6 +96,9 @@ func (a *Dialer) httpsFallbackDelay() time.Duration {
|
|||||||
var _ = envknob.RegisterBool("TS_USE_CONTROL_DIAL_PLAN") // to record at init time whether it's in use
|
var _ = envknob.RegisterBool("TS_USE_CONTROL_DIAL_PLAN") // to record at init time whether it's in use
|
||||||
|
|
||||||
func (a *Dialer) dial(ctx context.Context) (*ClientConn, error) {
|
func (a *Dialer) dial(ctx context.Context) (*ClientConn, error) {
|
||||||
|
|
||||||
|
a.logPort80Failure.Store(true)
|
||||||
|
|
||||||
// If we don't have a dial plan, just fall back to dialing the single
|
// If we don't have a dial plan, just fall back to dialing the single
|
||||||
// host we know about.
|
// host we know about.
|
||||||
useDialPlan := envknob.BoolDefaultTrue("TS_USE_CONTROL_DIAL_PLAN")
|
useDialPlan := envknob.BoolDefaultTrue("TS_USE_CONTROL_DIAL_PLAN")
|
||||||
@ -278,7 +281,9 @@ func (d *Dialer) forceNoise443() bool {
|
|||||||
// This heuristic works around networks where port 80 is MITMed and
|
// This heuristic works around networks where port 80 is MITMed and
|
||||||
// appears to work for a bit post-Upgrade but then gets closed,
|
// appears to work for a bit post-Upgrade but then gets closed,
|
||||||
// such as seen in https://github.com/tailscale/tailscale/issues/13597.
|
// such as seen in https://github.com/tailscale/tailscale/issues/13597.
|
||||||
|
if d.logPort80Failure.CompareAndSwap(true, false) {
|
||||||
d.logf("controlhttp: forcing port 443 dial due to recent noise dial")
|
d.logf("controlhttp: forcing port 443 dial due to recent noise dial")
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ package controlhttp
|
|||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"tailscale.com/health"
|
"tailscale.com/health"
|
||||||
@ -90,6 +91,11 @@ type Dialer struct {
|
|||||||
|
|
||||||
proxyFunc func(*http.Request) (*url.URL, error) // or nil
|
proxyFunc func(*http.Request) (*url.URL, error) // or nil
|
||||||
|
|
||||||
|
// logPort80Failure is whether we should log about port 80 interceptions
|
||||||
|
// and forcing a port 443 dial. We do this only once per "dial" method
|
||||||
|
// which can result in many concurrent racing dialHost calls.
|
||||||
|
logPort80Failure atomic.Bool
|
||||||
|
|
||||||
// For tests only
|
// For tests only
|
||||||
drainFinished chan struct{}
|
drainFinished chan struct{}
|
||||||
omitCertErrorLogging bool
|
omitCertErrorLogging bool
|
||||||
|
Loading…
x
Reference in New Issue
Block a user