Max Lv:把 meow iOS 的 DHCP DNS 兼容修复扩展到 fallback 与 nameserver-policy

在 meow-ios 处理 iOS 上 DHCP DNS nameserver 的 PR #362(由 mvanhorn 提交,分支 fix/358-dhcp-dns-compatibility)下,维护者 madeye 说明已把跟进提交推到该分支:rebase 到当前 main(含 meow-rs a663364),该版本 meow-rs 仍以同样的 `unsupported scheme` 拒绝 `dhcp`,因此该修复仍然必要;提交 61703ac 把过滤从 `nameserver` 扩展到 `fallback`、`default-nameserver` 与 `proxy-server-nameserver`——meow-rs 用同一个严格解析器解析它们,其中任一处出现 `dhcp://` 都会导致引擎启动失败;`nameserver-policy` 会跳过坏条目,但当某个域名不再有可用服务器时会硬报错。`strip_dhcp_nameservers` 现在过滤全部四个列表,并丢弃最终为空的策略域名,使其回退到主 nameserver。测试覆盖每个键、单字符串策略值、混合大小写 `DHCP://` scheme,引擎加载测试也在 `fallback` 与 `nameserver-policy` 中带上 DHCP 条目。本地 `cargo fmt --check`、`cargo clippy --all-targets --locked -D warnings` 均干净,`cargo test --locked` 84 项通过;合并前等待完整远程 CI。

作者原文

Thanks @mvanhorn! Reviewed and pushed a follow-up to this branch:

  • Rebased onto current main, which includes the meow-rs a663364 bump. That meow-rs still rejects dhcp with the same unsupported scheme error, so this fix is still needed.
  • 61703ac extends the filtering beyond nameserver. meow-rs parses fallback, default-nameserver and proxy-server-nameserver with the same strict parser, so dhcp:// in any of them still failed the engine start. nameserver-policy skips bad entries but hard-errors when a domain has no valid server left.
  • strip_dhcp_nameservers now filters all four lists.
  • It drops policy domains that end up empty, so they fall back to the main nameservers.
  • Tests: each key, a single-string policy value, a mixed-case DHCP:// scheme, and the engine-load test now carries DHCP entries in fallback and nameserver-policy too.

Local: cargo fmt --check clean, cargo clippy --all-targets --locked -D warnings clean, cargo test --locked → 84 passed. Waiting on full remote CI before merging.