MeowOS
|
30e2ec901f
|
meow_netmgrd 期2.1 修复:status JSON 漏闭 bt 对象(/api/net/status res.json() 必炸)
根因(patch_v2/meow_netmgrd.c build_status_json):bt 对象开 '{' 后,dns 数组之后漏收 '}',
导致 rfkill/rate 被吞进 bt、bt 与 root 均不闭合 → 外层 data 对象收尾只剩 3 个 '}',JSON 非法,
面板 /api/net/status 纯透传 MSG_NET_STATUS_RESULT(0xE0) 后 res.json() 失败。
修法:bt 的 dns 是末字段,收尾改为 ']},'(数组闭 + bt 闭 + 逗号)——不应含尾逗号
(首版 '],},' 产生 "dns":[...],} 尾逗号 JSON 非法,一并修正)。
顺手核查:build_iface_json(0xE2 单/全接口)括号配对正确、JSON 合法;conns/dns 为文本表非 JSON,不受影响。
加固:test_netmgrd.sh 增 T13b-e 端到端断言 STATUS(0xE0)/IFACE_ALL(0xE2)/IFACE_WLAN(0xE2) 的原始 JSON
可被 json.loads 完整解析(括号配对/无尾逗号/唯一有效对象)。
验证:宿主 test_netmgrd.sh 52/52、qemu-mipsel 52/52、test_netmgrd_p2(宿主+qemu) 全过、netmgrd_authtest 全过;
交叉 -Wall -Wextra 0 warning。新 meow_netmgrd md5 abfb97680b4f576f3669a3e4b3b29134(主会话热更设备)。
|
2026-09-01 21:24:35 +08:00 |
|
MeowOS
|
52edf0c9e4
|
meow_netmgrd 期2:观测层(PID→实体归因+连接普查)+DNS 代理+事件日志+连接/DNS IPC 与 CLI
NETMGR_DESIGN.md 期2范围落地(全在 patch_v2/meow_netmgrd/ + meow_ipc.h 追加):
- 连接普查(§4):每 2s 解析 /proc/net/{tcp,udp}(IPv4) → socket inode→pid(由 inode 集驱动扫
/proc/<pid>/fd,不逐 pid 盲扫)→ 三实体归因 app:<pkg>(amsd status)/svc:<svc>(svcd 落盘状态
/tmp/meow_svcd.status,socket 查询兜底)/proc:<comm>(无则 proc:unknown)。连接表静态 ≤512:
entity/五元组/状态/寿命;远端 IP 由 DNS 缓存反查域名。
- DNS 代理(§5):监听 127.0.0.1:53 UDP;启动备份 resolv.conf 写双行(127.0.0.1+原上游,崩溃零断流);
透传转发+缓存(TTL 尊重;≤256 条);按源端口(port→entity)归因;域名规则 per-entity+global allow/deny
(deny→NXDOMAIN+日志);atexit/SIGTERM/SIGHUP 恢复;5s 自检被第三方改回即重写;HibyOS 绝不启用/绝不改 resolv。
DNS wire(deny NXDOMAIN / forward→A+cache / NXDOMAIN id 回显) 宿主+qemu 实测 PASS。
- 事件日志(§8):新连接/关闭/dns deny/接口状态变化;同 entity 同 dst 1 分钟去重(首条+计数)。
- IPC meow_ipc.h 追加 0x00E8 CONNS_REQ/RESULT、0x00EC DNS_CTL/RESULT(纯追加不改既有行;
0x00EA 策略(期3)/0x00EE 事件推送(预留) 保留)。
- CLI meow_net 补 apps / conns [entity] / top(2s 刷新) / dns status|stats|flush。
- 内存:静态表禁 malloc,mipsel bss 228KB → RSS≈374KB,≤600KB 目标 / ≤1MB 预算。
宿主编译 -Wall -Wextra 0 warning;test_netmgrd.sh 48/48(宿主+qemu)、test_netmgrd_p2 全过(宿主+qemu)、
netmgrd_authtest 全过;真机(M6.0/0.8.0)只读实测 apps/conns/dns status 正确
(svc:meowpanel/svc:mdnsd/proc:dropbear 真实三实体归因),resolv.conf 测后核验原值未触碰。
|
2026-09-01 20:40:46 +08:00 |
|
MeowOS
|
79a0fed336
|
meow_netmgrd 期1:网络管理服务骨架+接口统一层+CLI+IPC+日志框架
NETMGR_DESIGN.md 期1范围(→ M6.0)落地:
- meow_netmgrd 守护:svcd 托管 trigger=boot/restart=on-fail,进程内 HibyOS 只读降级
(/tmp/meow_boot_mode != meow → 读可查/写拒+日志,热切换)。
- 接口统一层(§3):iface 枚举(/sys/class/net+/proc/net/dev,lo/wlan0/usb-eth 热插拔节拍检测);
WiFi 状态/扫描/网络列表/连接/断开(wpa_cli popen 有界收割防挂死,257 教训);IP/路由/DNS 只读
(ip 优先 /proc/net/route+resolv.conf);BT 状态/开关/已配对(hciconfig/bluetoothctl);rfkill 读写;udhcpc 续租/释放(MeowOS)。
- IPC 0x00E0-0x00E7(STATUS/IFACE/WIFI_CTL/BT_CTL+各自 RESULT):读级任意、写级仅系统身份(SO_PEERCRED
同 svc_power),0xE8-0xEF 期2/3 预留(仅注释)。
- CLI 双形态 meow_net(status/iface/wifi/bt/rfkill/help):IPC 薄壳,help 本地必可用。
- 日志框架:TF MeowOS/logs/net_<bootts>.log(无卡降级 /tmp),接口状态变化/写操作必记。
- 单线程 poll、静态表、热路径禁 malloc;mipsel 静态(0 warning),宿主+qemu-mipsel 全过,
真机只读验证 status/wifi scan/bt status 正确。
meow_ipc.h 仅追加 0x00E0-0x00E7 段(不改既有行)。
|
2026-09-01 19:55:26 +08:00 |
|