TUN-10388: Use pointer for suggested protocol

Switching `SuggestedProtocol` to a pointer, so we can pass nil whenever both QUIC and HTTP2 fail. We should not be suggesting anything when all our protocols have failed.
This commit is contained in:
Miguel da Costa Martins Marcelino
2026-04-29 13:36:38 +00:00
parent f827e6216b
commit cf17ba93b2
3 changed files with 53 additions and 29 deletions
+24 -7
View File
@@ -110,9 +110,19 @@ func summaryLine(r Report) string {
case r.hasHardFail():
return "SUMMARY: Environment has critical failures. cloudflared may not be able to establish a tunnel."
case r.hasWarn():
return fmt.Sprintf("SUMMARY: Environment ready with degraded transport. cloudflared will proceed using '%s'.", r.SuggestedProtocol)
if r.SuggestedProtocol == nil {
return "SUMMARY: Environment ready with degraded transport."
}
protocol := r.SuggestedProtocol.String()
return fmt.Sprintf("SUMMARY: Environment ready with degraded transport. cloudflared will proceed using '%s'.", protocol)
default:
return fmt.Sprintf("SUMMARY: Environment is healthy. cloudflared will use '%s' as primary protocol.", r.SuggestedProtocol)
if r.SuggestedProtocol == nil {
return "SUMMARY: Environment is healthy."
}
protocol := r.SuggestedProtocol.String()
return fmt.Sprintf("SUMMARY: Environment is healthy. cloudflared will use '%s' as primary protocol.", protocol)
}
}
@@ -210,9 +220,16 @@ func (r Report) LogEvent(logger *zerolog.Logger) {
Msg(logMsgPrecheck)
}
logger.Info().
Str(logFieldRunID, runID).
Bool(logFieldHardFail, r.hasHardFail()).
Str(logFieldSuggestedProtocol, r.SuggestedProtocol.String()).
Msg(logMsgPrecheckComplete)
if r.SuggestedProtocol != nil {
logger.Info().
Str(logFieldRunID, runID).
Bool(logFieldHardFail, r.hasHardFail()).
Str(logFieldSuggestedProtocol, r.SuggestedProtocol.String()).
Msg(logMsgPrecheckComplete)
} else {
logger.Info().
Str(logFieldRunID, runID).
Bool(logFieldHardFail, r.hasHardFail()).
Msg(logMsgPrecheckComplete)
}
}