mirror of
https://github.com/feigeCode/navop.git
synced 2026-09-22 08:01:27 +00:00
- 根因:async_ftp 6.0(2021 年停更)依赖 tokio-rustls 0.23 / rustls 0.20, 其 webpki 校验器不支持 IP SAN,FTPS 主机填 IP(如 127.0.0.1)时 TLS 握手必然失败:SecureError: presented server name type wasn't supported - suppaftp 12 走 tokio-rustls 0.26 / rustls 0.23,IP SAN 原生支持; 迁移后 IP 与域名主机均可 FTPS 连接 - 顺带删除 tls_client_config 中 rustls 0.23 → 0.20 的 DER 证书转换 shim (rustls-native-certs 0.8 输出直接可用),crate 内 rustls 版本收敛为一套 - 显式安装 ring CryptoProvider:依赖图中 rustls 同时启用 ring 与 aws-lc-rs,进程级默认 provider 无法自动判定 - 上传/下载迁移到 TransferStream(retr_as_stream / put_with_stream + finish),保留原有取消唤醒、空闲超时、置毒不复用的全部安全语义; ftp_status_code 由字符串解析改为类型化 UnexpectedResponse - 新增 crates/ftp/tests/real_server_smoke.rs:#[ignore] 真实服务器冒烟 测试(env 可配),配合本地 Docker pure-ftpd 服务器验证 - 验证:21 单测 + 假服务端回归全过;真实服务器 FTP(127.0.0.1)、 FTPS(localhost)、FTPS(127.0.0.1) 三种组合全过;clippy 0 新增 lint