diff options
author | Maxence Lange <maxence@artificial-owl.com> | 2019-05-17 13:20:02 -0100 |
---|---|---|
committer | Maxence Lange <maxence@artificial-owl.com> | 2019-05-17 13:20:02 -0100 |
commit | 77af4db6b4283f6134185a0451eb2e57c9dab824 (patch) | |
tree | 3a0ea5251d7d3c7e891c33c501839ceb043395f0 | |
parent | 5e833df2903d8f072fd41fb70fd60dd40ec7bc9a (diff) |
allow non-https
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
-rw-r--r-- | lib/Model/InstancePath.php | 7 | ||||
-rw-r--r-- | lib/Service/ActivityService.php | 1 | ||||
-rw-r--r-- | lib/Service/CacheDocumentService.php | 3 | ||||
-rw-r--r-- | lib/Service/CurlService.php | 8 |
4 files changed, 16 insertions, 3 deletions
diff --git a/lib/Model/InstancePath.php b/lib/Model/InstancePath.php index bbf941db..ba7606b0 100644 --- a/lib/Model/InstancePath.php +++ b/lib/Model/InstancePath.php @@ -137,6 +137,13 @@ class InstancePath implements JsonSerializable { } + public function getProtocol(): string { + $info = parse_url($this->getUri()); + + return $this->get('scheme', $info, ''); + } + + /** * @return string */ diff --git a/lib/Service/ActivityService.php b/lib/Service/ActivityService.php index fc85a0ba..c9237508 100644 --- a/lib/Service/ActivityService.php +++ b/lib/Service/ActivityService.php @@ -398,6 +398,7 @@ class ActivityService { $request->setTimeout($queue->getTimeout()); $request->setDataJson($queue->getActivity()); $request->setAddress($path->getAddress()); + $request->setProtocol($path->getProtocol()); return $request; } diff --git a/lib/Service/CacheDocumentService.php b/lib/Service/CacheDocumentService.php index 5738db99..0877846d 100644 --- a/lib/Service/CacheDocumentService.php +++ b/lib/Service/CacheDocumentService.php @@ -196,9 +196,10 @@ class CacheDocumentService { */ public function retrieveContent(string $url) { $url = parse_url($url); - $this->mustContains(['path', 'host'], $url); + $this->mustContains(['path', 'host', 'scheme'], $url); $request = new Request($url['path'], Request::TYPE_GET, true); $request->setAddress($url['host']); + $request->setProtocol($url['scheme']); $content = $this->curlService->request($request); diff --git a/lib/Service/CurlService.php b/lib/Service/CurlService.php index 514a5a11..ebf291ad 100644 --- a/lib/Service/CurlService.php +++ b/lib/Service/CurlService.php @@ -114,6 +114,7 @@ class CurlService { $request = new Request('/.well-known/webfinger'); $request->addData('resource', 'acct:' . $account); $request->setAddress($host); + $result = $this->request($request); return $result; @@ -177,9 +178,10 @@ class CurlService { public function retrieveObject($id): array { $url = parse_url($id); - $this->mustContains(['path', 'host'], $url); + $this->mustContains(['path', 'host', 'scheme'], $url); $request = new Request($url['path'], Request::TYPE_GET); $request->setAddress($url['host']); + $request->setProtocol($url['scheme']); $result = $this->request($request); if (is_array($result)) { @@ -261,6 +263,8 @@ class CurlService { $request = new Request($path, Request::TYPE_POST); $request->setAddress($host); + $request->setProtocol($this->get('scheme', $parse, 'https')); + try { $this->request($request); } catch (Exception $e) { @@ -329,7 +333,7 @@ class CurlService { * @return resource */ private function generateCurlRequest(Request $request) { - $url = 'https://' . $request->getAddress() . $request->getParsedUrl(); + $url = $request->getProtocol() . '://' . $request->getAddress() . $request->getParsedUrl(); if ($request->getType() !== Request::TYPE_GET) { $curl = curl_init($url); } else { |