- 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 集成测试全部通过,编译零警告
1.1 KiB
1.1 KiB
- 2026-06-10 03:00: SIGHUP 配置热重载
server.h/server.c: 新增server_request_reload()和server_reload_config()热重载 APIserver_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