nghttp2 1.71.0 RPM 和 DEB 软件包已发布

nghttp2 1.71.0 已新增到 CodeIT 仓库。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

主要变更:

  • 考虑了空闲流
  • 新增了限制最大出站队列大小的选项
  • 撤销了 “Take into account idle streams”
  • build(deps): 将 actions/stale 从 10 升级到 11
  • util: 新增了 <fstream> include
  • 新增了对 CONTINUATION 的长度检查
  • nghttpx: 检查 QUIC 版本
  • build(deps): 将 golang.org/x/net 从 0.57.0 升级到 0.58.0
  • Gha: 升级了 ubuntu
  • Munit cxx 断言
  • 将 go 升级到 1.26
  • build(deps): 将 github.com/quic-go/quic-go 从 0.61.0 升级到 0.62.0
  • nghttpx: 重构了 Router
  • nghttpx: 基于 RFC 9525 进行客户端 TLS 证书验证
  • nghttpx: 基于 RFC 9525 规则重写了 CertLookupTree
  • lib: 在 CONNECT stream 中禁止 HEADERS 和 PUSH_PROMISE
  • 将 clang-format 升级到 21
  • nghttpx: 移除了 server push
  • 升级了 neverbleed
  • GHA: 将 clang 升级到 21
  • 升级了 ubuntu
  • GHA: 使用打包的 OpenSSL
  • GHA: 减少了 openssl1 作业
  • GHA: 移除了 cygwin 构建,因为它已经停止工作
  • GHA: 减少了 cmake 和 macos 作业
  • build(deps): 将 golang.org/x/net 从 0.58.0 升级到 0.59.0
  • build(deps): 将 github.com/quic-go/quic-go 从 0.62.0 升级到 0.63.0
  • nghttpx: 修复了 QUIC 连接上的 GSO 被禁用的错误
  • bpf: 避免了 verifier 的指令限制
  • 更新了文档
  • build(deps): 将 golang.org/x/net 从 0.59.0 升级到 0.61.0
  • GHA: 在 macos 构建中使用 aws-lc 代替 openssl
  • build(deps): 将 github.com/quic-go/quic-go 从 0.63.0 升级到 0.64.0
  • 在消费数据时处理过大的窗口大小
  • 修复了 nghttp2_session_get_stream_local_window_size 中的有符号整数溢出
  • nghttp2_nv_array_copy: 检测到 size_t 溢出
  • 改进了 map 的哈希器
  • 新增了 oss-scanner 文件
  • 移除了 LICENSE 文件
  • build(deps): 将 github.com/quic-go/quic-go 从 0.64.0 升级到 0.64.1
  • 修复了优先级更新
  • 简化了 map 插入
  • 升级了依赖
  • 提前更新了窗口
  • 移除了公开的 server 文本
  • GHA: 移除了 macos-15
  • 升级了 ngtcp2 和 nghttp3

ngtcp2 1.26.0 RPM 和 DEB 软件包已发布

ngtcp2 1.26.0 已新增到 CodeIT 仓库。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

主要变更:

  • doc: 新增了用于使用 GSO 写入数据包的伪代码和文档
  • build(deps): 已将 actions/stale 从 10 升级到 11
  • 清理
  • 不会仅因为收到 STOP_SENDING 就关闭任何 stream
  • 重构了 conn
  • 收紧了 32 位平台上对长报头数据包长度的检查
  • map: 如果调整表大小失败则删除键
  • examples/server: 检查 QUIC version
  • 新增了 extendmaxdata 的回调函数
  • 更新了回调测试
  • 如果仍在使用,则不回收 fallback DCID
  • 修复了 CUBIC 的 CWND 增加函数
  • 在 handshake 完成时调用 extend_max_data
  • 如果因 STREAMS_BLOCKED 违反了限制,则返回 STREAM_LIMIT 错误
  • 新增了 ngtcp2_conn_tx_strmq_push_if_not
  • 当数据确实被阻塞时发送 STREAM_DATA_BLOCKED/DATA_BLOCKED
  • 更新了文档
  • 简化了 ngtcp2_conn_write_stream
  • 重新处理了传入的 NEW_CONNECTION_ID 校验
  • 断言 ngtcp2_conn_tls_early_data_rejected 只会从客户端调用
  • 对本地 uni stream 的 RESET_STREAM 返回 NGTCP2_ERR_STREAM_STATE
  • 删除了处理对于 UDP datagram 来说过大的情况的代码
  • 重命名了 ngtcp2_data_blocked 和 ngtcp2_stream_data_blocked 中的 offset
  • 新增了 transport parameters 解码测试
  • 新增了更多 transport parameters 解码测试
  • 新增了 wf 测试
  • 新增了重新发送 NEW_TOKEN 的测试
  • Rtb 测试
  • 简化了 conn 测试
  • GHA: 已将 Ubuntu 升级到 26.04
  • examples 中使用新的 munit cxx 断言重写了测试
  • 将 clang-format 升级到 21
  • GHA: 已将 clang 升级到 21
  • 使用打包的 ossl
  • GHA: 减少了 openssl1/3 作业
  • GHA: 减少了 cmake 作业
  • GHA: 修复了 quic interop runner
  • 调整了 ngtcp2_ratelim.burst 的最大值
  • 修复了 slow start pacing gain
  • 当对端的 IP address 变化时重置 max UDP payload size
  • 检查 picotls 加密级别
  • 检查 ossl 加密级别
  • Server 应在更早的级别发送 CONNECTION_CLOSE
  • GHA: macos 构建使用 libressl
  • 新增了 oss-scanner 文件
  • examples/client: 修复了 div by zero
  • examples/server: 在 32 位目标上不截断文件大小
  • 限制 token 长度
  • 为 rtb_reclaim_on_retry 新增了 0 长度 STREAM frame 过滤器
  • 修复了第一次解密前可解密数据包的最大编号标记
  • 对较短的 stream data 写入进行了惩罚
  • 优化了 ngtcp2_rtb_reclaim_on_pto
  • ngtcp2_conn_write_aggregate_pkt2: 检查用于结束聚合的 path
  • 将 libressl 升级到 v4.4.0
  • send_quantum 至少应为单个 MTU
  • 在 validated_path 消失之前使用它
  • 当 1 RTT key 被安装超过一次时,connection 仍可优雅关闭
  • 仅在 0RTT 和 1RTT 密钥可用后才处理 0RTT 数据包
  • 将客户端的 PATH_RESPONSE 限制在未验证路径上
  • 明确验证路径验证超时
  • 使 PATH_RESPONSE 触发 PTO
  • 在 RESET_STREAM 的流关闭中回收连接级流量控制窗口
  • 改进 ngtcp2_rob 的碎片阈值检测
  • 处理来自服务器的过早 HANDSHAKE_DONE
  • 改进 map 哈希器
  • 在因 anti-amplification limit 被取消后重新启动丢包计时器
  • 正确处理客户端迁回原始路径的情况
  • 如果没有发送 PATH_CHALLENGE,则不启动 pv round
  • 使 ngtcp2_pkt_decode_version_cid 在零输入时返回错误
  • 如果没有任何内容被传递,则保持拥塞状态
  • 处理没有 transport params 就不会退出的 TLS stack
  • 修复包号解码
  • 处理 Connection ID 限制错误
  • 拒绝确认了稍后发送的数据包的 ACK
  • 由于 handshake address 不可靠,移除其中的拒绝
  • 在未设置 WRITE_MORE 标志时重置 ppe pending 状态
  • 处理 stop_sending callback 中的 stream 关闭
  • 回退 “Stop buffering data after shutting downstream read”
  • 防止已使用的 DCID 被转入 retired
  • 避免废弃的 DCID 被遗弃
  • 当在 handshake 期间调用 ngtcp2_conn_initiate_key_update 时返回错误
  • 避免 DCID 重用
  • 在协商版本之前导出初始密钥
  • 以另一种方式防止已使用的 DCID 被转入 retired
  • 直到 handshake 完成之前都不调用 dcid_status callback
  • 回退 “Make sure that NGTCP2_CONN_FLAG_PPE_PENDING is not leaked”
  • 不会因缺少 DCID 和 credit 而阻塞 PATH_RESPONSE
  • 在确认丢包后重置 CUBIC 撤销变量
  • 修复 conn_shutdown_stream_read
  • 调整密钥更新确认
  • 修复内存泄漏
  • 统计 Handshake 和 0RTT 密钥的解密失败
  • examples/server 修复 handler 泄漏
  • 在读取服务器 0.5RTT 数据包之前安装 preferred address
  • 确保编码时至少分配 1 字节的 frame
  • 空的 STREAM frame 计入 glitch counter
  • 不清除 PTO eliciting 标志
  • 修复 lost_datagram 未被调用的错误
  • crypto/ossl: 也保护 tx_level 不受 0RTT 影响
  • hqclient: 在关闭时移除 streams
  • 修复 0RTT key 未随 callback 丢弃的问题
  • 在 0RTT 中发送 control frames
  • 回退 “Count empty STREAM frame toward glitch counter”
  • 修复仅含 PADDING 的数据包导致的无效 qlog
  • 处理获取 Connection ID 之后的内存不足
  • 移除某些 frame 的问题性 glitch counter
  • 写入 stream data thresh
  • 修复 ngtcp2_vec_merge
  • 提前停止路径验证
  • 简化 map 插入
  • 升级 tls 依赖
  • 修复在 malloc 仅 4 字节对齐时(如 ESP32 上)发生的堆越界
  • examples: 处理 if_indextoname 失败
  • GHA: 移除 macos-15

ngtcp2 库栈基于 OpenSSL 4.0.3 构建,QUIC 客户端名为 osslclient。

nghttp3 1.19.0 RPM 和 DEB 软件包已发布

nghttp3 1.19.0 已新增到 CodeIT 仓库。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

主要变更:

  • build(deps): 将 actions/stale 从 10 升级到 11
  • 为迎接 QMux,未发送字节的最小值已扩大
  • map: 如果调整表大小失败,则删除键
  • 建议的修复
  • fuzz: 修复了 ASAN 失败
  • fuzz: 使用 C++23 特性进行了更新
  • GHA: 构建了 fuzzers
  • fuzz: 修复了 docker 构建
  • 断言 control stream
  • clang-format 已升级到 21
  • tests: 为 CONNECT stream 中的 trailers 增加了更多测试
  • GHA: ubuntu 已升级到 26.04
  • 移植了 ngtcp2_ratelim 的更改
  • 清理了 QPACK opcode 分支逻辑
  • 检查 priority 字段大小并尽早应用缓冲区限制
  • Nva 复制
  • 更好的 map 哈希器
  • 简化了 map 插入
  • 修复了 balloc 对齐
  • nghttp3_buf: 使用 Designated Initializers 进行了初始化
  • GHA: 移除了 macos-15