im0o
|
71b35d5a24
|
从内核源码提取入站类型的字段表
20 种类型、6 个公共字段、398 个专有字段,用来驱动界面表单。
类型清单取自 listener/parse.go 的 ParseListener switch 而不是文件名:
listener/inbound/ 下 24 个非测试文件里有 11 个只是被内嵌的选项组(TLS 伪装、多路复用这类),
不能单独当 type 写;hysteria2-realm 的类型名带中划线而文件名带下划线,靠文件名猜会错。
|
2026-08-10 03:14:56 +08:00 |
|
im0o
|
ac91b96ef8
|
写出配置落盘的保护链路
顺序是:检查基准是否过时 → 自己校验 → 临时文件上跑 mihomo -t → 备份 → 写入 → 重载,
最后两步任一失败就从备份还原并让内核载回原样。
自己校验那一步不能省:实测 v1.19.29,入站的 proxy 指向不存在的出站时 mihomo -t 会通过、
重载会成功,直到有流量走到那个入站才在日志里报错。这类错误只有 Patchbay 查得出来。
路径在读环境变量时就转成绝对路径,因为内核的 PUT /configs 拒绝相对路径。
|
2026-08-10 02:56:04 +08:00 |
|
im0o
|
26bb0f3456
|
把分隔符里的字面 NUL 字节改成转义写法
源码里直接写 NUL 字节会让 git 把整个文件判定成二进制,此后再也看不到这个文件的 diff。
用 \u0000 转义,运行时的值不变。
|
2026-08-10 02:44:50 +08:00 |
|
im0o
|
f7db96fb0e
|
搭起项目骨架,验证配置文件往返
核心是确认「改配置而不弄乱文件」这件事成立:新增一路入站之后,其余 52 行逐字节不变。
搬进来的改写引擎用默认输出参数时会重排整个文件——行尾注释的对齐空格消失、流式数组被加上内边距——
连根本没改动的段落也一起波及。不修的话「改一处只动一处」这个承诺直接落空,所以关掉了它的自动排版,
并在写回之后补了一步逐行还原。
|
2026-08-10 02:43:04 +08:00 |
|