Decompress the data.
Parameters
object $response: Response from http request.
Return value
bool FALSE if something went wrong.
1 call to advagg_relocate_uncompress_data()
- advagg_relocate_try_failures_again in advagg_relocate/
advagg_relocate.advagg.inc - Detect failures and try again.
File
-
advagg_relocate/
advagg_relocate.advagg.inc, line 589
Code
function advagg_relocate_uncompress_data(&$response) {
// Uncompress.
if (!empty($response->headers['content-encoding']) && !empty($response->data) && (!isset($response->chunk_size) || !empty($response->headers['content-length']) && $response->headers['content-length'] == strlen($response->data)) && ($response->headers['content-encoding'] === 'gzip' || $response->headers['content-encoding'] === 'deflate' || $response->headers['content-encoding'] === 'br')) {
// Do the first level of decoding if not already done.
if ($response->headers['content-encoding'] === 'gzip') {
$chunk = @gzinflate(substr($response->data, 10));
}
elseif ($response->headers['content-encoding'] === 'deflate') {
$chunk = @gzinflate($response->data);
}
elseif ($response->headers['content-encoding'] === 'br' && is_callable('brotli_uncompress')) {
$chunk = @brotli_uncompress($response->data);
}
if (isset($chunk)) {
if ($chunk !== FALSE) {
$response->data = $chunk;
}
else {
return FALSE;
}
}
}
return TRUE;
}