TUN-10387: Add no-prechecks flag
Check / check (1.22.x, macos-latest) (push) Has been cancelled
Check / check (1.22.x, ubuntu-latest) (push) Has been cancelled
Check / check (1.22.x, windows-latest) (push) Has been cancelled
Semgrep config / semgrep/ci (push) Has been cancelled

Add a new no-prechecks flag to cloudflared. This will allow skipping connectivity pre-checks at startup.
This commit is contained in:
Miguel da Costa Martins Marcelino
2026-04-27 11:29:43 +00:00
parent 9f084e6800
commit ddd76fa05f
4 changed files with 18 additions and 3 deletions
+3
View File
@@ -120,6 +120,9 @@ const (
// NoAutoUpdate is the command line flag to disable cloudflared from checking for updates
NoAutoUpdate = "no-autoupdate"
// NoPrechecks is the command line flag to skip connectivity pre-checks at startup.
NoPrechecks = "no-prechecks"
// LogLevel is the command line flag for the cloudflared logging level
LogLevel = "loglevel"
+8
View File
@@ -77,6 +77,7 @@ var (
"config",
cfdflags.AutoUpdateFreq,
cfdflags.NoAutoUpdate,
cfdflags.NoPrechecks,
cfdflags.Metrics,
"pidfile",
"url",
@@ -881,6 +882,13 @@ func configureCloudflaredFlags(shouldHide bool) []cli.Flag {
Value: false,
Hidden: shouldHide,
}),
altsrc.NewBoolFlag(&cli.BoolFlag{
Name: cfdflags.NoPrechecks,
Usage: "Skip connectivity pre-checks at startup.",
EnvVars: []string{"TUNNEL_NO_PRECHECKS"},
Value: false,
Hidden: shouldHide,
}),
altsrc.NewStringFlag(&cli.StringFlag{
Name: cfdflags.Metrics,
Value: metrics.GetMetricsDefaultAddress(metrics.Runtime),
+4 -3
View File
@@ -261,6 +261,7 @@ func prepareTunnelConfig(
DisableQUICPathMTUDiscovery: c.Bool(flags.QuicDisablePathMTUDiscovery),
QUICConnectionLevelFlowControlLimit: c.Uint64(flags.QuicConnLevelFlowControlLimit),
QUICStreamLevelFlowControlLimit: c.Uint64(flags.QuicStreamLevelFlowControlLimit),
NoPrechecks: c.Bool(flags.NoPrechecks),
OriginDNSService: dnsService,
OriginDialerService: originDialerService,
}
@@ -300,7 +301,7 @@ func gracePeriod(c *cli.Context) (time.Duration, error) {
}
func isRunningFromTerminal() bool {
return term.IsTerminal(int(os.Stdout.Fd()))
return term.IsTerminal(int(os.Stdout.Fd())) // nolint:gosec
}
// ParseConfigIPVersion returns the IP version from possible expected values from config
@@ -341,7 +342,7 @@ func testIPBindable(ip net.IP) error {
if err != nil {
return err
}
listener.Close()
_ = listener.Close()
return nil
}
@@ -503,7 +504,7 @@ func findLocalAddr(dst net.IP, port int) (netip.Addr, error) {
if err != nil {
return netip.Addr{}, err
}
defer udpConn.Close()
defer func() { _ = udpConn.Close() }()
localAddrPort, err := netip.ParseAddrPort(udpConn.LocalAddr().String())
if err != nil {
return netip.Addr{}, err
+3
View File
@@ -61,6 +61,9 @@ type TunnelConfig struct {
NeedPQ bool
// NoPrechecks disables connectivity pre-checks at startup.
NoPrechecks bool
NamedTunnel *connection.TunnelProperties
ProtocolSelector connection.ProtocolSelector
EdgeTLSConfigs map[connection.Protocol]*tls.Config