Commit Graph
16 Commits
Author SHA1 Message Date
lbl de0183139d feat: add TAP device mode and Ethernet interoperability 2026-08-22 21:47:49 +08:00
lbl 60a4403f0e feat: add desktop updater and release automation 2026-08-22 10:00:24 +08:00
lbl da72670154 chore: update rand and resolve clippy warnings 2026-08-22 08:57:50 +08:00
lbl 74c47bce69 feat: add outbound interface binding 2026-08-22 07:58:18 +08:00
lbl cd5b4431dc feat: add unified Tauri desktop client and secure web access 2026-08-22 04:09:44 +08:00
lbl 0ccd045e78 feat(vnt-web): 新增 /api/version,顶栏版本号不再依赖组网状态 2026-08-22 01:38:57 +08:00
lbl 39a4e60d39 feat(vnt-web): 配置变化提示与停止交互优化
- /api/info 新增 config_changed:与启动时的配置快照对比,启动后配置被修改(或文件缺失/解析失败)时实例卡片显示「配置发生变化」徽章,重启后自动消失
- 停止操作增加「停止中」中间态:徽章脉冲提示、按钮区禁用,实例真正停止后卡片渐隐消失,失败时自动恢复
- 停止/重启/移除确认弹窗优先显示配置名称,兜底文件名
2026-08-22 01:27:39 +08:00
lbl 292d54fbc3 feat(vnt-web): 支持同时启动多个组网配置
- 后端实例状态从全局单槽改为按配置文件名隔离的 HashMap,每个实例持有
  独立的状态机、启动日志与任务组管理器
- 启动/停止/重启/信息/对端/路由/启动状态接口均按 file_name 维度隔离,
  新增 GET /api/instances 实例列表与 DELETE /api/instance 移除已停止实例
- 启动前冲突检测:device_id 相同(同服务器同组网范围内)或 tunnel_port
  显式相同则拒绝启动
- vnt_current_config.txt 改为每行一个配置名,重启后自动恢复所有运行中实例
- 前端重做为多实例模型:实例卡片列表、按实例隔离的启动日志弹窗、
  peers/routes 顶部实例切换器、配置列表运行状态标记、已停止实例可移除
2026-08-21 21:31:48 +08:00
lbl 061135fb95 fix(vnt-web): save_config 强制 .toml 后缀
问题:list_configs 只列出 *.toml 文件(service_http.rs:812),而
save_config 对文件名不做后缀校验,可保存出列表中不可见、无法通过
Web 界面再次选择的配置文件。

修复:新增 normalize_config_file_name——无扩展名时自动补 .toml,已是
.toml 保持不变,其他扩展名直接拒绝并返回错误提示。

测试:新增 test_normalize_config_file_name 覆盖补后缀/保持不变/拒绝
.txt/.json 三种情况,cargo test -p vnt-web 4 个测试全部通过。
2026-08-21 03:11:14 +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 bd79844849 修复 Web 静态资源目录穿越
static_handler 此前直接 join 未归一化的 URI 路径,
curl --path-as-is .../../../ 可读取进程权限内任意文件。
改为逐组件校验:仅允许 Normal/CurDir 组件,拒绝 ..、根路径、盘符。
补充路径校验单元测试。
2026-08-20 22:16:01 +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 4708ed2b16 注册失败时重试 2026-02-24 16:08:18 +08:00
lbl b4301a8106 v2 2026-02-10 18:20:39 +08:00