Page MenuHomePhabricator

D21121.id50300.diff
No OneTemporary

D21121.id50300.diff

diff --git a/src/future/http/BaseHTTPFuture.php b/src/future/http/BaseHTTPFuture.php
--- a/src/future/http/BaseHTTPFuture.php
+++ b/src/future/http/BaseHTTPFuture.php
@@ -26,7 +26,7 @@
private $uri;
private $data;
private $expect;
-
+ private $disableContentDecoding;
/* -( Creating a New Request )--------------------------------------------- */
@@ -276,6 +276,15 @@
return strlen(phutil_build_http_querystring($data));
}
+ public function setDisableContentDecoding($disable_decoding) {
+ $this->disableContentDecoding = $disable_decoding;
+ return $this;
+ }
+
+ public function getDisableContentDecoding() {
+ return $this->disableContentDecoding;
+ }
+
/* -( Resolving the Request )---------------------------------------------- */
@@ -348,24 +357,26 @@
}
}
- $content_encoding = null;
- foreach ($headers as $header) {
- list($name, $value) = $header;
- $name = phutil_utf8_strtolower($name);
- if (!strcasecmp($name, 'Content-Encoding')) {
- $content_encoding = $value;
- break;
+ if (!$this->getDisableContentDecoding()) {
+ $content_encoding = null;
+ foreach ($headers as $header) {
+ list($name, $value) = $header;
+ $name = phutil_utf8_strtolower($name);
+ if (!strcasecmp($name, 'Content-Encoding')) {
+ $content_encoding = $value;
+ break;
+ }
}
- }
- switch ($content_encoding) {
- case 'gzip':
- $decoded_body = gzdecode($body);
- if ($decoded_body === false) {
- return $this->buildMalformedResult($raw_response);
- }
- $body = $decoded_body;
- break;
+ switch ($content_encoding) {
+ case 'gzip':
+ $decoded_body = @gzdecode($body);
+ if ($decoded_body === false) {
+ return $this->buildMalformedResult($raw_response);
+ }
+ $body = $decoded_body;
+ break;
+ }
}
$status = new HTTPFutureHTTPResponseStatus(

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 7, 9:24 AM (2 w, 18 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7228183
Default Alt Text
D21121.id50300.diff (1 KB)

Event Timeline