lbl
|
1ea38ec715
|
修复 FEC 变长批次解码必失败且连带丢包
- 编码端把所有数据 shard 填充到 max_len 再做 RS 编码,解码端此前按
实际长度存放数据 shard,批次内包长不一致时 reconstruct 必报
IncorrectShardSize。现在记录 shard_size(校验包长度),
无论校验包先到还是后到都把数据 shard 补齐到统一长度
- 解码失败不再向上传播错误:坏 group 直接移除,
当前完好包与后续数据包正常透传
- 补充变长批次恢复、校验包先到恢复、解码失败不吞好包三个测试
|
2026-08-20 22:32:41 +08:00 |
|
lbl
|
ca72f2b3d4
|
修复 Web 状态机在启动中停止时卡死
- 启动任务(含注册重试循环)此前是裸 tokio::spawn,stop 打不断:
服务器不可达时点击停止,状态永远卡在 Starting 或显示 Running 的死网络。
现在保存 JoinHandle,stop/restart 时先 abort_start_task 中断它,
defer 守卫负责把状态迁移到 Stopped
- 清理任务此前 spawn 在自己所等待的 task_group 里,形成自引用等待,
网络自行停止时永不返回;改为在任务组外等待
- 顺带修复 TaskGroup::wait_all_stopped 的丢失唤醒竞态:
notified() 先 enable 注册再检查条件
- 补充 Starting 状态停止迁移、任务自然结束唤醒两个测试
|
2026-08-20 22:21:54 +08:00 |
|
lbl
|
1ff7405681
|
修复 register/start_tun 失败后不可重试
- register 拆出 register_impl,Err 时归还 RegistrationContext,
调用方(CLI/Web 的 5 秒重试循环)不再得到 'can only be called once'
- DeviceIoManager::start_task 改为先创建 tun 设备(唯一可能失败的步骤),
成功后才消费 TunReceiver/EnhancedOutbound,失败时调用方状态完整可重试
|
2026-08-20 21:54:27 +08:00 |
|
lbl
|
6489237233
|
修复空载荷包越界 panic 杀死数据面任务
对端构造的零载荷包(头部长度恰好等于 HEAD_LENGTH)会使
TunDataInbound/InternalNatInbound 的 data[0] 索引越界 panic,
tokio 任务终止后连接永久静默死亡。两处 send 均增加空切片检查,
畸形包静默丢弃。补充空包/短包不 panic 的测试。
|
2026-08-20 21:48:24 +08:00 |
|
lbl
|
b0db6c9659
|
补充加解密跨版本兼容性测试
nonce 完全由包自带的头部字节计算,解密端不依赖发送端状态,因此
seq 修复与旧版本线上兼容。测试双向验证:旧版本(seq=0)加密的包新版本
可解密,新版本(递增 seq)加密的包按旧逻辑(仅读头部算 nonce)也可解密。
|
2026-08-20 21:44:50 +08:00 |
|
lbl
|
46d5d24e96
|
修复 TLS 指纹模式不验握手签名的问题
FingerprintVerifier 此前只比对证书哈希,verify_tls12/13_signature 无条件
放行。而证书由密码确定性生成、属于公开信息,主动中间人重放真实证书即可
完成握手,指纹模式无法抵抗 MITM。
- verify_tls12/13_signature 改为调用 rustls::crypto::verify_tls12/13_signature
做真实验签(ring provider 的签名算法集)
- supported_verify_schemes 返回算法集实际支持的方案
- 补充基于 tokio 内存通道的真实 TLS 握手测试:指纹匹配握手成功、
指纹不匹配握手失败
|
2026-08-20 21:41:02 +08:00 |
|
lbl
|
3c0532b4c5
|
修复加密 nonce 全局重用
PacketCrypto 的 nonce 由 msg_type+seq+src+dst 构成,但 seq 字段从未赋值,
同一 (msg_type,src,dst) 的所有包共用同一 nonce,AEAD 密钥流重用。
- PacketCrypto 增加 Arc<AtomicU32> 出站序号计数器(随机起始值,避免
进程重启后相同密钥复用低序号段),encrypt_in_place 时自动分配 seq
- 补充 nonce 唯一性与 clone 共享计数器的测试
|
2026-08-20 21:33:37 +08:00 |
|
lbl
|
216cf16310
|
修复中继路由探测失效
- MsgType 的 TryFrom 与枚举判别值不一致:RelayProbe 写 18 却被解码为
RelayProbeReply,真正的 Reply(19) 被当非法类型丢弃,改为 18/19 与枚举一致
- RelayProbeReply 回复 TTL 由 1 改为 2:TTL=1 时中继节点 decr 后即被丢弃,
回复永远到不了发起方,中继路由(metric=2)无法建立
- 补充 MsgType 全变体 round-trip 与中继 TTL 语义测试
|
2026-08-20 21:30:32 +08:00 |
|
lbl
|
7d481560e3
|
规范依赖管理并适配 rand 0.10
- tcp_ip 从 git 依赖切换为 crates.io 0.2(IpStackConfig 改用 builder)
- 公共依赖收拢到 workspace.dependencies 统一版本
- 移除 release profile 的 panic=abort(避免 vnt-jni 中止宿主 JVM)
- vnt-jni 升级 edition 2024(no_mangle 改为 unsafe(no_mangle))
- vnt-ipc 显式声明 tokio features
- 适配 rand 0.10:random_range 移至 RngExt,choose_multiple 改名 sample
- 修复 clippy 警告(type_complexity/collapsible_if/ptr_arg)
|
2026-08-20 20:58:07 +08:00 |
|
lbl
|
e088d305b1
|
移除过期统计值
|
2026-03-02 15:52:24 +08:00 |
|
lbl
|
39602c478e
|
调整路径探测协议
|
2026-03-02 14:23:39 +08:00 |
|
lbl
|
1dc53ca898
|
计算路由评分
|
2026-02-28 19:26:19 +08:00 |
|
lbl
|
12f7eed8a5
|
记录具体路径的丢包率
|
2026-02-28 18:56:11 +08:00 |
|
lbl
|
2aa423062e
|
支持设置端口
|
2026-02-28 17:49:11 +08:00 |
|
lbl
|
5a31ad89f4
|
jni
|
2026-02-24 18:31:40 +08:00 |
|
lbl
|
ecdb359bbd
|
fmt
|
2026-02-24 16:08:44 +08:00 |
|
lbl
|
4708ed2b16
|
注册失败时重试
|
2026-02-24 16:08:18 +08:00 |
|
lbl
|
b4301a8106
|
v2
|
2026-02-10 18:20:39 +08:00 |
|