PluginProbe
JetBackup – Backup, Restore & Migrate / 1.4.6
JetBackup – Backup, Restore & Migrate v1.4.6
3.1.23.6 3.1.23.5 3.1.23.3 3.1.22.4 3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 All 82 releases
backup / com / lib / Dropbox / CurlStreamRelay.php
CurlStreamRelay.php
46 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Dropbox;
3
4 /**
5 * A CURLOPT_WRITEFUNCTION that will write HTTP response data to $outStream if
6 * it's an HTTP 200 response. For all other HTTP status codes, it'll save the
7 * output in a string, which you can retrieve it via {@link getErrorBody}.
8 *
9 * @internal
10 */
11 class CurlStreamRelay
12 {
13 var $outStream;
14 var $errorData;
15 var $isError;
16
17 function __construct($ch, $outStream)
18 {
19 $this->outStream = $outStream;
20 $this->errorData = array();
21 $isError = null;
22 curl_setopt($ch, CURLOPT_WRITEFUNCTION, array($this, 'writeData'));
23 }
24
25 function writeData($ch, $data)
26 {
27 if ($this->isError === null) {
28 $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
29 $this->isError = ($statusCode !== 200);
30 }
31
32 if ($this->isError) {
33 $this->errorData[] = $data;
34 } else {
35 fwrite($this->outStream, $data);
36 }
37
38 return strlen($data);
39 }
40
41 function getErrorBody()
42 {
43 return implode($this->errorData);
44 }
45 }
46