- 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 集成测试全部通过,编译零警告
14 lines
1.1 KiB
Markdown
14 lines
1.1 KiB
Markdown
|
||
- 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
|