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

1.1 KiB
Raw Blame History

  • 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_pathvolatile 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