这次不是新开 PR,而是在已有 PR 的 review 反馈下继续补代码。
- Issue: juanfont/headscale#3055
- PR: juanfont/headscale#3062
- Follow-up commit:
62409aa9
Analyze
最初 PR 只改了 config-example.yaml,把 prefixes 的风险写得更明确。维护者反馈希望进一步做代码侧改动:不仅文档提示,还要在运行时给出更清晰 warning。
目标是保持行为不变,只提升错误提示质量,减少“配置能启动但行为不受支持”的误判。
Locate
定位到已有 warning 的实际代码点:
hscontrol/types/config.go的prefixV4()hscontrol/types/config.go的prefixV6()
原始文案只说“prefix 不在范围内,配置不受支持”,但没有直接点明配置键,也没有明确潜在影响。
Execute
我在不改逻辑的前提下,仅升级了两条 warning 文案:
- 明确指出对应配置项:
prefixes.v4/prefixes.v6 - 明确支持边界:仅支持 CGNAT / ULA 范围(包含其子集)
- 明确风险:自定义范围不受支持,可能影响客户端连通性
验证命令:
go test ./hscontrol/types -count=1
Summary
这类 follow-up 改动很小,但价值高:
- 不引入行为变化,review 成本低;
- 直接提升配置问题的可诊断性;
- 与文档提示形成闭环,减少未来重复解释成本。
后续继续按 maintainer 反馈做小步迭代,优先“可读、可测、可快速合并”。