【问题标题】:Cannot use `deflateInit` to compress the modified data无法使用 `deflateInit` 压缩修改后的数据
【发布时间】:2015-02-06 19:41:45
【问题描述】:

我正在开发一个 LSP 来监控 HTTP 流量并修改每个网页的源 HTML 代码。为了修改分块的 HTTP 响应,我使用了 zlibinflate 并使用以下主要代码行成功解压缩了数据:

r = inflateInit2(&z, 16 + MAX_WBITS);
...
r = inflate(&z, 0);

现在,修改后,我想使用完全相同的方法重新压缩数据,所以我使用以下代码行但它返回 -2。

r = deflateInit(&o, 16 + MAX_WBITS);

如果我更改16+MAX_WBITS,它将返回SUCCESS,但它不是相同的方法,并且在deflate 之后返回无效响应。

我怎样才能实现我的目标?

【问题讨论】:

    标签: c++ http zlib winsock-lsp


    【解决方案1】:

    您需要使用deflateInit2()。第四个参数是16 + MAX_WBITS。请阅读zlib.h中的文档

    【讨论】:

    • 你是对的,现在它已修复,但在deflatetotal_in=0x00000669total_out=0x0000000a 之后!为什么会这样?!
    • 您需要发布一个包含详细信息的新问题。
    猜你喜欢
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 2011-09-06
    • 2011-05-28
    • 2016-05-02
    • 2015-02-26
    • 1970-01-01
    • 2016-05-14
    相关资源
    最近更新 更多