cocoon/.cocoon-plan.md
xfy911 528291c7e5 feat(server): SIGHUP 配置热重载
- server.h/server.c: 新增 server_request_reload() 和 server_reload_config()

- server_create() 新增 config_file_path 参数

- 热重载范围: root_dir, log_level, access_log, gzip/brotli, timeout, max_connections, vhosts, proxies, healthcheck

- 保守策略: 不释放旧字符串指针,避免活跃连接竞态

- accept_loop() 在 accept() 后也检查 reload_requested,确保新连接使用最新配置

- main.c: 新增 sighup_handler() 注册 SIGHUP 信号

- tests/integration_test.sh: 新增 SIGHUP 热重载集成测试 (3项)

- 190 单元测试 + 109 集成测试全部通过,编译零警告
2026-06-10 03:41:10 +08:00

14 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- 2026-06-10 03:00: **SIGHUP 配置热重载**
- `server.h` / `server.c`: 新增 `server_request_reload()``server_reload_config()` 热重载 API
- `server_create()` 新增 `config_file_path` 参数,存储配置文件路径用于重载
- `server_context_t` 新增 `config_file_path``volatile int reload_requested` 字段
- 热重载范围root_dir、log_level、access_log、gzip/brotli、timeout、max_connections、vhosts、proxies、healthcheck
- 保守策略:不释放旧字符串指针(避免活跃连接竞态),接受小内存泄漏
- 不可热重载项port、threaded、num_workers、tls_cert/key日志警告
- `accept_loop()`: 在 `accept()` 之后也检查 `reload_requested`,确保新连接使用最新配置
- `main.c`: 新增 `sighup_handler()` 注册 `SIGHUP` 信号,`--help` 更新 Signals 说明
- `tests/integration_test.sh`: 新增 SIGHUP 热重载集成测试3项初始配置、热重载后 root_dir 更新、热重载日志验证)
- 编译零警告190 个单元测试 + 109 项集成测试全部通过
- 推送到 main