Hi, I noticed that deflate compress buckets use an inappropriate value as the compression level for `deflateInit2()`.
Please see deflate_buckets.c:505: case STATE_COMPRESS_INIT: zRC = deflateInit2(&ctx->zstream, Z_DEFAULT_STRATEGY, Z_DEFLATED, ctx->windowSize, ctx->memLevel, Z_DEFAULT_STRATEGY); The code above passes Z_DEFAULT_STRATEGY (0) as the compression level, and this entirely disables the compression. I tend to think that the intention here was to use Z_DEFAULT_COMPRESSION (-1). Note that the compress buckets are only available in trunk, and that they currently aren't used anywhere except the tests. Please see the attached patch. Log message: [[[ Fix default compression level in deflate compress buckets. * buckets/deflate_buckets.c (serf_deflate_wait_for_data): Pass Z_DEFAULT_COMPRESSION instead of Z_DEFAULT_STRATEGY as the compression level to deflateInit2(). ]]] Regards, Evgeny Kotkov
Index: buckets/deflate_buckets.c =================================================================== --- buckets/deflate_buckets.c (revision 1757569) +++ buckets/deflate_buckets.c (working copy) @@ -503,7 +503,7 @@ static apr_status_t serf_deflate_wait_for_data(ser break; } case STATE_COMPRESS_INIT: - zRC = deflateInit2(&ctx->zstream, Z_DEFAULT_STRATEGY, Z_DEFLATED, + zRC = deflateInit2(&ctx->zstream, Z_DEFAULT_COMPRESSION, Z_DEFLATED, ctx->windowSize, ctx->memLevel, Z_DEFAULT_STRATEGY); if (zRC != Z_OK) { serf__log(LOGLVL_ERROR, LOGCOMP_COMPR, __FILE__, ctx->config,