Remove 'headers' option occurrences and add a warning if used.
authorPhilipp <admin@philipp.info>
Sun, 18 Oct 2020 20:31:26 +0000 (22:31 +0200)
committerPhilipp <admin@philipp.info>
Sun, 18 Oct 2020 20:31:26 +0000 (22:31 +0200)
src/Model/GServer.php
src/Module/Magic.php
src/Network/HTTPRequest.php
src/Util/HTTPSignature.php

index 009816d..3a2a0bd 100644 (file)
@@ -1639,7 +1639,7 @@ class GServer
                if (!empty($accesstoken)) {
                        $api = 'https://instances.social/api/1.0/instances/list?count=0';
                        $header = ['Authorization: Bearer '.$accesstoken];
-                       $curlResult = DI::httpRequest()->get($api, ['headers' => $header]);
+                       $curlResult = DI::httpRequest()->get($api, ['header' => $header]);
 
                        if ($curlResult->isSuccess()) {
                                $servers = json_decode($curlResult->getBody(), true);
index fc37d91..af8ff36 100644 (file)
@@ -88,19 +88,19 @@ class Magic extends BaseModule
                                $exp = explode('/profile/', $contact['url']);
                                $basepath = $exp[0];
 
-                               $headers = [];
-                               $headers['Accept'] = 'application/x-dfrn+json, application/x-zot+json';
-                               $headers['X-Open-Web-Auth'] = Strings::getRandomHex();
+                               $header = [];
+                               $header['Accept'] = 'application/x-dfrn+json, application/x-zot+json';
+                               $header['X-Open-Web-Auth'] = Strings::getRandomHex();
 
                                // Create a header that is signed with the local users private key.
-                               $headers = HTTPSignature::createSig(
-                                       $headers,
+                               $header = HTTPSignature::createSig(
+                                       $header,
                                        $user['prvkey'],
                                        'acct:' . $user['nickname'] . '@' . DI::baseUrl()->getHostname() . (DI::baseUrl()->getUrlPath() ? '/' . DI::baseUrl()->getUrlPath() : '')
                                );
 
                                // Try to get an authentication token from the other instance.
-                               $curlResult = DI::httpRequest()->get($basepath . '/owa', ['headers' => $headers]);
+                               $curlResult = DI::httpRequest()->get($basepath . '/owa', ['header' => $header]);
 
                                if ($curlResult->isSuccess()) {
                                        $j = json_decode($curlResult->getBody(), true);
index df62ea4..93ce86c 100644 (file)
@@ -141,6 +141,7 @@ class HTTPRequest implements IHTTPRequest
                curl_setopt($ch, CURLOPT_ENCODING, '');
 
                if (!empty($opts['headers'])) {
+                       $this->logger->warning('Wrong option \'headers\' used.');
                        @curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['headers']);
                }
 
index 2b98b1a..e3244fa 100644 (file)
@@ -411,7 +411,7 @@ class HTTPSignature
         */
        public static function fetchRaw($request, $uid = 0, $binary = false, $opts = [])
        {
-               $headers = [];
+               $header = [];
 
                if (!empty($uid)) {
                        $owner = User::getOwnerDataById($uid);
@@ -431,21 +431,21 @@ class HTTPSignature
                        $path = parse_url($request, PHP_URL_PATH);
                        $date = DateTimeFormat::utcNow(DateTimeFormat::HTTP);
 
-                       $headers = ['Date: ' . $date, 'Host: ' . $host];
+                       $header = ['Date: ' . $date, 'Host: ' . $host];
 
                        $signed_data = "(request-target): get " . $path . "\ndate: ". $date . "\nhost: " . $host;
 
                        $signature = base64_encode(Crypto::rsaSign($signed_data, $owner['uprvkey'], 'sha256'));
 
-                       $headers[] = 'Signature: keyId="' . $owner['url'] . '#main-key' . '",algorithm="rsa-sha256",headers="(request-target) date host",signature="' . $signature . '"';
+                       $header[] = 'Signature: keyId="' . $owner['url'] . '#main-key' . '",algorithm="rsa-sha256",headers="(request-target) date host",signature="' . $signature . '"';
                }
 
                if (!empty($opts['accept_content'])) {
-                       $headers[] = 'Accept: ' . $opts['accept_content'];
+                       $header[] = 'Accept: ' . $opts['accept_content'];
                }
 
                $curl_opts = $opts;
-               $curl_opts['header'] = $headers;
+               $curl_opts['header'] = $header;
 
                if ($opts['nobody']) {
                        $curlResult = DI::httpRequest()->head($request, $curl_opts);