App-HTTP_Proxy_IMP
view release on metacpan or search on metacpan
lib/App/HTTP_Proxy_IMP/IMP.pm view on Meta::CPAN
substr($buf,0,$hdr_len,'');
$gzip_csum = 8; # 8 byte Adler CRC at end
$wb = -MAX_WBITS(); # see Compress::Raw::Zlib
} else {
# deflate
# according to RFC it should be zlib, but due to the encoding name
# often real deflate is used instead
# check magic bytes to decide
# lets see if it looks like a zlib header
# check for CM=8, CMID<=7 in first byte and valid FCHECK in
# seconds byte
return $more if length($buf)<2;
my $magic = unpack('C',substr($buf,0,1));
if (
( $magic & 0b1111 ) == 8 # CM = 8
and $magic >> 4 <= 7 # CMID <= 7
and unpack('n',substr($buf,0,2)) % 31 == 0 # valid FCHECK
) {
# looks like zlib header
$wb = +MAX_WBITS(); # see Compress::Raw::Zlib
} else {
# assume deflate
$wb = -MAX_WBITS(); # see Compress::Raw::Zlib
}
}
$inflate = Compress::Raw::Zlib::Inflate->new(
-WindowBits => $wb,
-AppendOutput => 1,
( run in 0.427 second using v1.01-cache-2.11-cpan-64827b87656 )