fix(mdns): 启动竞态+运行期接口重检 (agent-194) — 无可用IPv4不再exit(2)改内部2s等待重试(SIGTERM可打断); 5s周期检测掉线/换IP→重新join组播+A记录实时刷新(修IP变更还带旧地址); 接口down时零应答守卫; MEOW_MDNS_IF 落地
meow_mdns b23de7ce→d6b0151b (+3.5KB); mipsel -Wall -Wextra 0 warning; 宿主netns实测等待/换IP/掉线守卫全过 注: 真机源码在 mips-repo/bins/meow_mdns/(非patch_v2); fw_content.conf 的 md5 行打包时更新
This commit is contained in:
1 parent
3fd4726198
commit
b2e7cc8c70
3 files changed
+92
-29
No files matched your search
@@ -28,6 +28,9 @@
|
||||
- RFC 1035 名压缩(owner 名若已在响应中出现则回写 `0xC0` 指针)。
|
||||
- IP_PKTINFO 判断查询到组播还是单播:**组播查询→组播应答 + 单播冗余回源**;单播查询→单播回源。
|
||||
- 线程/信号安全;SIGINT/SIGTERM 优雅退出(留组并关 socket)。
|
||||
- **启动容错**:接口未就绪(无 IPv4/wlan0 未 up)时**内部等待重试**(每 2s,无限等,stderr 打 `waiting`),不再 exit;修复开机时 mdns 先于网络就绪的 5×exit=2 崩溃竞态。
|
||||
- **运行期容错**:每 5s 周期检查设备 IP,**掉线(无 IPv4)或换 IP(WiFi 重连)时自动重新 drop/join 组播并刷新应答 IP**,避免应答携带旧地址。
|
||||
- `MEOW_MDNS_IF`(已实现):限定要绑定/公布的接口名——既作为 IP 筛选,也决定 join 绑定接口;可用于宿主模拟"无接口"(设为不存在的接口名即进入等待循环)。
|
||||
|
||||
## 环境覆写
|
||||
| 变量 | 默认 | 说明 |
|
||||
@@ -51,8 +54,8 @@
|
||||
ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), statically linked, stripped
|
||||
|
||||
## 体积
|
||||
- 部署版:**79,468 B ≈ 77.6 KB**(strip 后)
|
||||
- MD5 :**b23de7ce54873e926e7601a3b21b66a9**
|
||||
- 部署版:**82,972 B ≈ 81.0 KB**(strip 后;较旧版 +3.5KB,启动容错 + 运行期重检)
|
||||
- MD5 :**d6b0151bda26768f19952dae1342610d**(旧 `b23de7ce54873e926e7601a3b21b66a9`)
|
||||
|
||||
## 构建命令
|
||||
见同目录 build.sh(宿主 gcc `-O2` 可编译并在本机组播/单播自测;交叉 `zig-mipsel-cc -Os -static`)。
|
||||
|
||||
Reference in new issue
Block a user