PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.3.9
JetBackup – Backup, Restore & Migrate v1.3.9
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 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / com / lib / Dropbox / DropboxMetadataHeaderCatcher.php
backup / com / lib / Dropbox Last commit date
Exception 5 years ago WebAuthException 5 years ago certs 5 years ago AppInfo.php 5 years ago AppInfoLoadException.php 5 years ago ArrayEntryStore.php 5 years ago AuthBase.php 5 years ago AuthInfo.php 5 years ago AuthInfoLoadException.php 5 years ago Checker.php 5 years ago Client.php 5 years ago Curl.php 5 years ago CurlStreamRelay.php 5 years ago DeserializeException.php 5 years ago DropboxMetadataHeaderCatcher.php 5 years ago Exception.php 5 years ago Host.php 5 years ago HttpResponse.php 5 years ago OAuth1AccessToken.php 5 years ago OAuth1Upgrader.php 5 years ago Path.php 5 years ago RequestUtil.php 5 years ago RootCertificates.php 5 years ago SSLTester.php 5 years ago Security.php 5 years ago StreamReadException.php 5 years ago Util.php 5 years ago ValueStore.php 5 years ago WebAuth.php 5 years ago WebAuthBase.php 5 years ago WebAuthNoRedirect.php 5 years ago WriteMode.php 5 years ago autoload.php 5 years ago strict.php 5 years ago
DropboxMetadataHeaderCatcher.php
84 lines
1 <?php
2 namespace Dropbox;
3
4 /**
5 * @internal
6 */
7 final class DropboxMetadataHeaderCatcher
8 {
9 /**
10 * @var mixed
11 */
12 var $metadata = null;
13
14 /**
15 * @var string
16 */
17 var $error = null;
18
19 /**
20 * @var bool
21 */
22 var $skippedFirstLine = false;
23
24 /**
25 * @param resource $ch
26 */
27 function __construct($ch)
28 {
29 curl_setopt($ch, CURLOPT_HEADERFUNCTION, array($this, 'headerFunction'));
30 }
31
32 /**
33 * @param resource $ch
34 * @param string $header
35 * @return int
36 * @throws Exception_BadResponse
37 */
38 function headerFunction($ch, $header)
39 {
40 // The first line is the HTTP status line (Ex: "HTTP/1.1 200 OK").
41 if (!$this->skippedFirstLine) {
42 $this->skippedFirstLine = true;
43 return strlen($header);
44 }
45
46 // If we've encountered an error on a previous callback, then there's nothing left to do.
47 if ($this->error !== null) {
48 return strlen($header);
49 }
50
51 // case-insensitive starts-with check.
52 if (\substr_compare($header, "x-dropbox-metadata:", 0, 19, true) !== 0) {
53 return strlen($header);
54 }
55
56 if ($this->metadata !== null) {
57 $this->error = "Duplicate X-Dropbox-Metadata header";
58 return strlen($header);
59 }
60
61 $headerValue = substr($header, 19);
62 $parsed = json_decode($headerValue, true, 10);
63
64 if ($parsed === null) {
65 $this->error = "Bad JSON in X-Dropbox-Metadata header";
66 return strlen($header);
67 }
68
69 $this->metadata = $parsed;
70 return strlen($header);
71 }
72
73 function getMetadata()
74 {
75 if ($this->error !== null) {
76 throw new Exception_BadResponse($this->error);
77 }
78 if ($this->metadata === null) {
79 throw new Exception_BadResponse("Missing X-Dropbox-Metadata header");
80 }
81 return $this->metadata;
82 }
83 }
84