+
+ // When using Curl to query servers using Digest Auth, we get back a double set of http headers.
+ // We strip out the 1st...
+ if ($headersProcessed && preg_match('/^HTTP\/[0-9]\.[0-9] 401 /', $data)) {
+ if (preg_match('/(\r?\n){2}HTTP\/[0-9]\.[0-9] 200 /', $data)) {
+ $data = preg_replace('/^HTTP\/[0-9]\.[0-9] 401 .+?(?:\r?\n){2}(HTTP\/[0-9.]+ 200 )/s', '$1', $data, 1);
+ }
+ }
+
+ if (preg_match('/^HTTP\/[0-9]\.[0-9] ([0-9]{3}) /', $data, $matches)) {
+ $httpResponse['status_code'] = $matches[1];
+ }
+
+ if ($httpResponse['status_code'] !== '200') {