106 Commits

Author SHA1 Message Date
xfy911
6af0ba5ab2 Phase 5 — ACME 模块:修复 OpenSSL 3.0 弃用警告,零警告编译通过
Some checks failed
CI / build (push) Failing after 7m58s
- 使用 EVP_PKEY_get_octet_string_param("pub") 替代弃用的 EC_KEY API
- 移除未使用的 base64url_decode,消除编译器警告
- 修复 strncpy 潜在截断,改用 snprintf
- 单元测试 474 项全部通过,集成测试 111 项通过
2026-06-16 03:39:12 +08:00
xfy911
c2a5deec9a docs: 更新 .cocoon-plan.md,标记管理 Dashboard 为完成
Some checks failed
CI / build (push) Failing after 10m2s
- 单元测试 474 个,集成测试 111 项通过
- Phase 5 已完成:FastCGI 协议核心、FastCGI 服务器集成、连接池完善、
  配置热重载校验、内存响应缓存、管理 Dashboard
- 下阶段目标:ACME / Let's Encrypt 自动证书
2026-06-16 00:29:36 +08:00
xfy911
b889b83a7f docs: 更新 .cocoon-plan.md — 确认内存响应缓存已完成
Some checks failed
CI / build (push) Failing after 10m1s
- 标记 Phase 5 内存响应缓存为已完成 [x]
- 更新当前状态:465 单元测试全过,集成测试 4 项环境问题
- 添加本轮维护记录:cache 模块完整性验证
- 下阶段目标:管理 Dashboard
2026-06-15 21:29:16 +08:00
xfy911
638e9644f1 更新 .cocoon-plan.md:配置热重载校验完成,465 单元测试 + 115 集成测试全过
Some checks failed
CI / build (push) Failing after 3m41s
2026-06-15 15:27:21 +08:00
xfy911
8e7ce502af 更新 .cocoon-plan.md — 记录连接池完善进度 2026-06-15 12:24:28 +08:00
xfy911
fb446ac7e6 更新规划:FastCGI 服务器集成完成,标记 Phase 5 进度 2026-06-15 09:28:45 +08:00
xfy911
ffa03c2163 维护记录: FastCGI 协议核心实现完成 (2026-06-15 08:17) 2026-06-15 08:29:37 +08:00
xfy911
f1b9805639 规划: Phase 5 路线图 — 应用网关方向(FastCGI / 连接池 / 配置热重载校验) 2026-06-15 08:18:25 +08:00
xfy911
3a1a1f1f42 维护记录:定期巡检状态确认(2026-06-15 06:17) 2026-06-15 06:18:41 +08:00
xfy911
d84e6f43c2 维护记录:定期巡检状态确认(2026-06-15 03:17) 2026-06-15 03:20:34 +08:00
xfy911
c5f582c586 维护记录:定期巡检状态确认(2026-06-14 21:17) 2026-06-14 21:19:27 +08:00
xfy911
81ce53b1a1 维护记录:定期巡检状态确认(2026-06-14 18:17) 2026-06-14 18:18:44 +08:00
xfy911
f1941b990c 更新维护记录:Rate Limit 测试加固(2026-06-14 15:17) 2026-06-14 15:22:43 +08:00
xfy911
e886ce104c 维护记录:定期巡检状态确认(2026-06-14 09:17) 2026-06-14 09:18:56 +08:00
xfy911
c6cd42306e 维护记录:定期巡检状态确认(2026-06-14 06:17) 2026-06-14 06:18:59 +08:00
xfy911
df9fec0b6f 维护记录:定期巡检状态确认(2026-06-14 03:17) 2026-06-14 03:20:03 +08:00
xfy911
caedd0062f 维护记录:定期巡检状态确认(2026-06-14 00:17) 2026-06-14 00:19:53 +08:00
xfy911
d8d0132c1b 维护记录:定期巡检状态确认(2026-06-13 18:17) 2026-06-13 18:18:59 +08:00
xfy911
e7c8b8e602 维护记录:定期巡检状态确认(2026-06-13 15:17) 2026-06-13 15:22:08 +08:00
xfy911
343a8b4199 维护记录:定期巡检状态确认(2026-06-13 12:17) 2026-06-13 12:18:48 +08:00
xfy911
abf34d6324 维护记录:定期巡检状态确认(2026-06-13 09:17) 2026-06-13 09:19:58 +08:00
xfy911
08a7470d32 修复 SSE 单元测试编译警告,更新维护记录
- 初始化 test_sse.c 中 client/server 变量,消除 7 处 -Wmaybe-uninitialized 警告

- 编译零警告,458 个单元测试 + 115 项集成测试全部通过
2026-06-13 06:25:43 +08:00
xfy911
710cede61c 维护记录:定期巡检状态确认(2026-06-13 00:17) 2026-06-13 00:19:48 +08:00
xfy911
8ec6819e7b 维护记录:定期巡检状态确认(2026-06-12 21:17) 2026-06-12 21:19:17 +08:00
xfy911
cf6be5fe82 更新维护记录:定期巡检状态确认(2026-06-12 18:17) 2026-06-12 18:26:33 +08:00
xfy911
a696f48359 维护记录:定期巡检验证,全部测试通过 2026-06-12 15:54:27 +08:00
xfy911
5d6ca62f79 维护记录:修复 Makefile 缺失规则与编译产物清理 2026-06-12 15:44:00 +08:00
xfy911
fb35fef0db feat: SSE 端点支持
- 新增 sse.h/sse.c 实现 Server-Sent Events
  - 可复用 API: sse_send_headers, sse_send_event, sse_send_comment
  - 内置 /_sse 演示端点,每秒推送时间戳事件
  - 支持 Last-Event-ID 断线重连
  - 每 15 秒心跳注释保活
  - 非 GET 方法返回 405
- 集成到 server.c 请求处理流程
- 新增 7 项 SSE 单元测试 + 5 项集成测试
- 编译零警告,全部 458 单元测试 + 114 集成测试通过 ✓
2026-06-12 13:39:49 +08:00
xfy911
0f1323dccb 维护记录:定期巡检验证,全部测试通过 2026-06-12 12:21:07 +08:00
xfy911
b255c3f5da 维护:移除误跟踪的编译产物 test_http_asan
- git rm --cached tests/unit/test_http_asan
- 该文件为带 AddressSanitizer 的单元测试 ELF 可执行文件
- 已在 .gitignore 中正确忽略(tests/unit/test_* 模式覆盖)
- 更新 .cocoon-plan.md 维护记录
2026-06-12 09:23:59 +08:00
xfy911
132f219803 维护记录:定期巡检验证,全部测试通过 2026-06-12 06:19:12 +08:00
xfy911
65bc686f39 维护记录:定期巡检验证,全部测试通过 2026-06-12 03:19:42 +08:00
xfy911
397554d0c9 docs: 更新维护记录,2026-06-12 移除误跟踪编译产物 2026-06-12 00:19:18 +08:00
xfy911
460832019d docs: 更新维护状态记录,2026-06-11 21:18 定期巡检验证全部测试通过
- 编译零警告(含额外严格标志 -Wshadow -Wstrict-prototypes -Wmissing-prototypes)
- 451 个单元测试 + 109 项集成测试全部通过
- 无遗留 TODO/FIXME
- 工作区干净,维护模式正常
2026-06-11 21:22:25 +08:00
xfy911
d06ac54782 docs: 更新维护状态记录,2026-06-11 验证全部测试通过 2026-06-11 18:19:15 +08:00
xfy911
9544206d0c docs: 清理 middleware_ext.c 中遗留的 TODO 注释,改为准确机制说明 2026-06-11 15:21:34 +08:00
xfy911
87bae245d2 build(phase4): 更新构建系统与文档,集成 Phase 4 模块
- CMakeLists.txt: 新增 middleware_ext.c、load_balance.c、grpc.c、
  http3.c 到源文件列表和单元测试列表
- Makefile: 更新 SRCS,新增 4 个模块的单元测试编译规则
- README.md: 新增 Phase 4 特性(JWT Auth、负载均衡、gRPC、HTTP/3)、
  模块说明表、路线图标记全部完成、测试统计(451 单元测试)
- .cocoon-plan.md: Phase 4 全部标记为完成,更新当前状态与行动记录
2026-06-10 11:36:59 +08:00
xfy911
525cd8954c docs(plan): 更新维护状态记录 2026-06-10 09:05:00 +08:00
xfy911
43d5f6d54e docs(readme): 标记虚拟主机为完成,更新发展规划
- README 路线图:虚拟主机 / 多站点标记为  完成
- .cocoon-plan.md:重构为完整历史记录,包含所有功能完成时间线
- 项目进入维护阶段,所有 Phase 1-3 功能已完成
2026-06-10 06:03:49 +08:00
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
xfy911
e6b4a11d16 feat(http2): HTTP/2 代理流式转发
- 新增 proxy_data_source_read_callback:实时从后端读取数据流式转发
- http2_serve_proxy 重构:解析响应头后立即发送,body 通过 DATA 帧实时转发
- 解除 64KB 响应缓冲区限制,支持任意大小响应体
- 流结构新增代理字段(backend_fd/tls_conn/eof/close_backend/backend)
- 已缓存 body(recv_headers 预读部分)优先发送,再续读后端
- 连接池归还/关闭自动处理
2026-06-10 00:22:46 +08:00
xfy911
2280b318a8 docs(plan): 更新计划,标记 proxy 单元测试完成(31项,190个单元测试全部通过) 2026-06-09 21:11:53 +08:00
xfy911
0e7de9400c test(healthcheck): 新增主动健康检查单元测试(17项)
- 覆盖 healthcheck_parse_status 状态码解析(正常/异常/边界)
- 覆盖 healthcheck_build_request 请求构建(默认路径/自定义路径/空路径)
- 覆盖 healthcheck_update_state 状态机(阈值恢复/阈值失败/计数器重置/时间戳)
- 覆盖 healthcheck_probe_once NULL 防护
- 使用 #include healthcheck.c 白盒测试技巧访问静态函数
- Makefile: 新增 test_healthcheck 编译规则
- .cocoon-plan.md: 标记主动健康检查完成,更新单元测试总数 159

编译零警告,159 个单元测试 + 106 项集成测试全部通过。
2026-06-09 18:16:35 +08:00
xfy911
60ef9ed908 feat(vhost): 虚拟主机/多站点支持
- cocoon.h: 新增 cocoon_vhost_t 结构体和 COCOON_MAX_VHOSTS 宏
- config.c: JSON 解析器新增 vhosts 数组解析
- server.c: HTTP/1.1 请求根据 Host 头匹配虚拟主机 root_dir
- http2.h/c: HTTP/2 根据 :authority 匹配虚拟主机,存储为 Host 头
- http2.c: 新增 http2_session_set_server_config() API
- cocoon.json: 添加 vhosts 配置示例
- tests: 新增 3 项虚拟主机集成测试
- 编译零警告,142 单元测试 + 106 集成测试全部通过
2026-06-09 15:28:57 +08:00
xfy911
8516261d34 docs(plan): 更新计划,标记连接池 HTTP/1.0 兼容完成
- 待办池:连接池 HTTP/1.0 兼容 → 
- 测试数:93 → 99 项
- 添加 2026-06-09 12:00 行动记录
2026-06-09 12:36:58 +08:00
xfy911
25a0b100c1 docs(plan): 更新计划,标记 HTTP/2 代理完成,新增连接池 HTTP/1.0 兼容待办 2026-06-09 09:39:56 +08:00
xfy911
9000cdb23a docs(plan): 更新计划,标记加权轮询完成,新增 HTTP/2 代理待办 2026-06-09 06:08:30 +08:00
xfy911
23574ab2ba feat(proxy): 连接池大小可配置(默认4,最大16)
- proxy.h: COCOON_MAX_POOL_SIZE → COCOON_POOL_MAX_CAPACITY(16) + COCOON_POOL_DEFAULT_SIZE(4)
- proxy.c: proxy_pool_init 接收 max_pool_size,自动裁剪到上限
- proxy.c: proxy_add_rule 新增 pool_size 参数
- cocoon.h: 配置结构新增 pool_size 字段
- config.c: JSON 解析 pool_size 数字字段,默认值为 4
- server.c: 调用 proxy_add_rule 时传入配置值
- cocoon.json: 示例配置添加 pool_size 展示

编译零警告,142 单元测试 + 90 集成测试全部通过。
2026-06-09 03:06:50 +08:00
xfy911
ff1b56fc9e docs(plan): 更新计划,标记连接池完成
- 待办池:连接池完成,新增 HTTP/2 代理支持待办
- 最近行动记录:新增 2026-06-09 连接池/keep-alive 条目
2026-06-09 00:21:59 +08:00
xfy911
e13ff5402a feat(proxy): 后端连接池/keep-alive,避免每次请求新建 TCP
- proxy.h: 新增 cocoon_pooled_conn_t / cocoon_conn_pool_t (pthread_mutex 保护)
  - 每个后端最多4个空闲连接,30秒空闲超时
  - 支持 HTTP 和 HTTPS 后端,复用 tls_conn / fd
- proxy.c: 实现 proxy_pool_init/destroy/acquire/release + proxy_config_destroy
- proxy.c: proxy_relay_backend 使用连接池获取/归还,向后端发送 Connection: keep-alive
- proxy.c: 修复后端关闭连接后复用导致客户端超时的问题
  - recv 返回 0 时不再归还到池中,直接关闭并重建
- server.c: server_destroy 调用 proxy_config_destroy 清理所有连接池
- 编译零警告,142 单元测试 + 90 集成测试全部通过
2026-06-09 00:21:22 +08:00