allow non-https

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
pull/526/head
Maxence Lange 2019-05-17 13:20:02 -01:00
rodzic 5e833df290
commit 77af4db6b4
4 zmienionych plików z 16 dodań i 3 usunięć

Wyświetl plik

@ -137,6 +137,13 @@ class InstancePath implements JsonSerializable {
} }
public function getProtocol(): string {
$info = parse_url($this->getUri());
return $this->get('scheme', $info, '');
}
/** /**
* @return string * @return string
*/ */

Wyświetl plik

@ -398,6 +398,7 @@ class ActivityService {
$request->setTimeout($queue->getTimeout()); $request->setTimeout($queue->getTimeout());
$request->setDataJson($queue->getActivity()); $request->setDataJson($queue->getActivity());
$request->setAddress($path->getAddress()); $request->setAddress($path->getAddress());
$request->setProtocol($path->getProtocol());
return $request; return $request;
} }

Wyświetl plik

@ -196,9 +196,10 @@ class CacheDocumentService {
*/ */
public function retrieveContent(string $url) { public function retrieveContent(string $url) {
$url = parse_url($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 = new Request($url['path'], Request::TYPE_GET, true);
$request->setAddress($url['host']); $request->setAddress($url['host']);
$request->setProtocol($url['scheme']);
$content = $this->curlService->request($request); $content = $this->curlService->request($request);

Wyświetl plik

@ -114,6 +114,7 @@ class CurlService {
$request = new Request('/.well-known/webfinger'); $request = new Request('/.well-known/webfinger');
$request->addData('resource', 'acct:' . $account); $request->addData('resource', 'acct:' . $account);
$request->setAddress($host); $request->setAddress($host);
$result = $this->request($request); $result = $this->request($request);
return $result; return $result;
@ -177,9 +178,10 @@ class CurlService {
public function retrieveObject($id): array { public function retrieveObject($id): array {
$url = parse_url($id); $url = parse_url($id);
$this->mustContains(['path', 'host'], $url); $this->mustContains(['path', 'host', 'scheme'], $url);
$request = new Request($url['path'], Request::TYPE_GET); $request = new Request($url['path'], Request::TYPE_GET);
$request->setAddress($url['host']); $request->setAddress($url['host']);
$request->setProtocol($url['scheme']);
$result = $this->request($request); $result = $this->request($request);
if (is_array($result)) { if (is_array($result)) {
@ -261,6 +263,8 @@ class CurlService {
$request = new Request($path, Request::TYPE_POST); $request = new Request($path, Request::TYPE_POST);
$request->setAddress($host); $request->setAddress($host);
$request->setProtocol($this->get('scheme', $parse, 'https'));
try { try {
$this->request($request); $this->request($request);
} catch (Exception $e) { } catch (Exception $e) {
@ -329,7 +333,7 @@ class CurlService {
* @return resource * @return resource
*/ */
private function generateCurlRequest(Request $request) { private function generateCurlRequest(Request $request) {
$url = 'https://' . $request->getAddress() . $request->getParsedUrl(); $url = $request->getProtocol() . '://' . $request->getAddress() . $request->getParsedUrl();
if ($request->getType() !== Request::TYPE_GET) { if ($request->getType() !== Request::TYPE_GET) {
$curl = curl_init($url); $curl = curl_init($url);
} else { } else {