fix: correct upload timing, web listener leak, DNS DoH contract and add IPv6 DNS - #5
Merged
Merged
Conversation
…dd IPv6 DNS - Stop the upload timer at request-send so the server response no longer inflates upload throughput (speed_test_service). - Detach browser online/offline listeners on the last connectivity subscription cancel to avoid leaking global listeners (connectivity_service_web). - Return the documented 'unsupported' result for DoH-less web DNS servers instead of probing an arbitrary https URL (dns_service_web). - Stop the web ping timer at response headers so large bodies do not inflate latency (ping_service_web). - Resolve IPv6 (AAAA) from the raw-UDP resolver and bind a matching address family (dns_service_io, dns_packet). - Guard example setState after await and disable the Run button while busy. - Add a speed-test smoke test to prevent regressions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary / 摘要
Fixes several diagnostics correctness and resource-leak bugs and adds IPv6 DNS resolution; ships as v1.0.5.
修复了若干诊断正确性与资源泄漏问题,并新增 IPv6 DNS 解析;以 v1.0.5 发布。
Changes / 变更
online/offlinelisteners on the first subscription and detaching them on the last cancellation, so repeated subscriptions no longer accumulate global event listeners. / 修复 Web 连通性监听泄漏:首次订阅时挂载、末次取消时移除浏览器online/offline监听,反复订阅不再累积全局监听。https://<server>/dns-queryURL. / 修复 Web DNS DoH 契约:无已知端点的显式服务器按文档返回"不支持",而非请求未必提供 DoH 的地址。setStateafter dispose and overlapping runs. / 加固示例应用:避免组件销毁后调用setState,并防止重复运行。Context / 背景
These bugs silently understated upload bandwidth, leaked global event listeners on the web, served an incorrect DoH fallback, and overstated web ping latency; IPv6-only DNS servers were previously unreachable. The fixes preserve the public API contract and only change
lib/runtime behavior, so they earn a CHANGELOG entry.这些缺陷会悄悄低估上传带宽、在 Web 端泄漏全局监听、给出错误的 DoH 回退,并高估 Web ping 延迟;此前纯 IPv6 的 DNS 服务器不可达。修复未破坏公开 API,仅影响
lib/运行行为,因此写入变更日志。Checklist / 检查项
Test plan
flutter testpasses, including the new speed-test smoke test /flutter test通过,含新增上传计时冒烟测试dart format .reports no changes /dart format .无改动mainand confirm the 3 required status checks (Analyze & Test, Pana Score Check, Check PR Title) pass / 合入main后确认三项必需检查通过🤖 Generated with Zero Buddy