Press "Enter" to skip to content

STWP 2025 第 26 周周报

还是全是 Zeno 。

  • https://github.com/internetarchive/Zeno/pull/356 Headless/Headfull 存档 PR 发了,PR 仍在 WIP。(测试可以存档知乎专栏!)
  • https://github.com/internetarchive/Zeno/pull/370 解析非 UTF-8 的 HTML,PR 仍在 WIP 。
  • https://github.com/internetarchive/Zeno/pull/369 加了丢弃超过指定 payload 大小的响应的功能。
  • https://github.com/internetarchive/gowarc/pull/115 主要是修了 gowarc 在上层的 HTTP TCP Conn 出现异常关闭时 (early EOF, io timeout, conn closed/reset),由于没有向下 .CloseWithError(),而是调用常规的 .Close(),导致下层的 MITM 套娃 HTTP TCP Conn 以为是正常 EOF,最终导致,对于没有 Content-Length 头的流式响应,这类 early EOF 的响应被当成正常响应而被写入了 WARC 存档中。(而对于更常见的非流式响应,由于存在 Content-Length,即使 early EOF 仍然被当成了正常 EOF,但是由于 go 的 http 标准库的 http.ReadRespon() 会用 io.LimitReader 来组装 Response.Body ,这样的 Response.Body 会自己做一次额外的 EOF 位置与 Content-Length 位置的匹配检查,如果不匹配会返回 early EOF。换句话说,这 BUG 在大部分情况下被标准库缓解了导致我们没发现。)。然后还修了 Conn.SetReadDeadline() 木有生效、临时文件泄漏的问题。
发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注