summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxence Lange <maxence@artificial-owl.com>2019-05-17 13:20:02 -0100
committerMaxence Lange <maxence@artificial-owl.com>2019-05-17 13:20:02 -0100
commit77af4db6b4283f6134185a0451eb2e57c9dab824 (patch)
tree3a0ea5251d7d3c7e891c33c501839ceb043395f0
parent5e833df2903d8f072fd41fb70fd60dd40ec7bc9a (diff)
allow non-https
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
-rw-r--r--lib/Model/InstancePath.php7
-rw-r--r--lib/Service/ActivityService.php1
-rw-r--r--lib/Service/CacheDocumentService.php3
-rw-r--r--lib/Service/CurlService.php8
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 {