]> git.mxchange.org Git - friendica.git/blobdiff - src/Network/HTTPRequest.php
Merge pull request #10551 from annando/profiler
[friendica.git] / src / Network / HTTPRequest.php
index bd31ac1e143702ff597f2f4038c69e73ab104bdf..daf84dc9acf528b0d556d1bed8dade40dcb0f237 100644 (file)
@@ -72,11 +72,15 @@ class HTTPRequest implements IHTTPRequest
         */
        public function get(string $url, array $opts = [], &$redirects = 0)
        {
-               $stamp1 = microtime(true);
+               $this->profiler->startRecording('network');
+
+               if (Network::isLocalLink($url)) {
+                       $this->logger->info('Local link', ['url' => $url, 'callstack' => System::callstack(20)]);
+               }
 
                if (strlen($url) > 1000) {
                        $this->logger->debug('URL is longer than 1000 characters.', ['url' => $url, 'callstack' => System::callstack(20)]);
-                       $this->profiler->saveTimestamp($stamp1, 'network');
+                       $this->profiler->stopRecording();
                        return CurlResult::createErrorCurl(substr($url, 0, 200));
                }
 
@@ -95,14 +99,14 @@ class HTTPRequest implements IHTTPRequest
 
                if (Network::isUrlBlocked($url)) {
                        $this->logger->info('Domain is blocked.', ['url' => $url]);
-                       $this->profiler->saveTimestamp($stamp1, 'network');
+                       $this->profiler->stopRecording();
                        return CurlResult::createErrorCurl($url);
                }
 
                $ch = @curl_init($url);
 
                if (($redirects > 8) || (!$ch)) {
-                       $this->profiler->saveTimestamp($stamp1, 'network');
+                       $this->profiler->stopRecording();
                        return CurlResult::createErrorCurl($url);
                }
 
@@ -204,13 +208,13 @@ class HTTPRequest implements IHTTPRequest
                        $redirects++;
                        $this->logger->notice('Curl redirect.', ['url' => $url, 'to' => $curlResponse->getRedirectUrl()]);
                        @curl_close($ch);
-                       $this->profiler->saveTimestamp($stamp1, 'network');
+                       $this->profiler->stopRecording();
                        return $this->get($curlResponse->getRedirectUrl(), $opts, $redirects);
                }
 
                @curl_close($ch);
 
-               $this->profiler->saveTimestamp($stamp1, 'network');
+               $this->profiler->stopRecording();
 
                return $curlResponse;
        }
@@ -224,18 +228,22 @@ class HTTPRequest implements IHTTPRequest
         */
        public function post(string $url, $params, array $headers = [], int $timeout = 0, &$redirects = 0)
        {
-               $stamp1 = microtime(true);
+               $this->profiler->startRecording('network');
+
+               if (Network::isLocalLink($url)) {
+                       $this->logger->info('Local link', ['url' => $url, 'callstack' => System::callstack(20)]);
+               }
 
                if (Network::isUrlBlocked($url)) {
                        $this->logger->info('Domain is blocked.' . ['url' => $url]);
-                       $this->profiler->saveTimestamp($stamp1, 'network');
+                       $this->profiler->stopRecording();
                        return CurlResult::createErrorCurl($url);
                }
 
                $ch = curl_init($url);
 
                if (($redirects > 8) || (!$ch)) {
-                       $this->profiler->saveTimestamp($stamp1, 'network');
+                       $this->profiler->stopRecording();
                        return CurlResult::createErrorCurl($url);
                }
 
@@ -295,13 +303,13 @@ class HTTPRequest implements IHTTPRequest
                        $redirects++;
                        $this->logger->info('Post redirect.', ['url' => $url, 'to' => $curlResponse->getRedirectUrl()]);
                        curl_close($ch);
-                       $this->profiler->saveTimestamp($stamp1, 'network');
+                       $this->profiler->stopRecording();
                        return $this->post($curlResponse->getRedirectUrl(), $params, $headers, $redirects, $timeout);
                }
 
                curl_close($ch);
 
-               $this->profiler->saveTimestamp($stamp1, 'network');
+               $this->profiler->stopRecording();
 
                // Very old versions of Lighttpd don't like the "Expect" header, so we remove it when needed
                if ($curlResponse->getReturnCode() == 417) {
@@ -328,6 +336,10 @@ class HTTPRequest implements IHTTPRequest
         */
        public function finalUrl(string $url, int $depth = 1, bool $fetchbody = false)
        {
+               if (Network::isLocalLink($url)) {
+                       $this->logger->info('Local link', ['url' => $url, 'callstack' => System::callstack(20)]);
+               }
+
                if (Network::isUrlBlocked($url)) {
                        $this->logger->info('Domain is blocked.', ['url' => $url]);
                        return $url;
@@ -346,7 +358,7 @@ class HTTPRequest implements IHTTPRequest
 
                $url = trim($url, "'");
 
-               $stamp1 = microtime(true);
+               $this->profiler->startRecording('network');
 
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
@@ -362,7 +374,7 @@ class HTTPRequest implements IHTTPRequest
                $http_code = $curl_info['http_code'];
                curl_close($ch);
 
-               $this->profiler->saveTimestamp($stamp1, "network");
+               $this->profiler->stopRecording();
 
                if ($http_code == 0) {
                        return $url;
@@ -391,7 +403,7 @@ class HTTPRequest implements IHTTPRequest
                        return $url;
                }
 
-               $stamp1 = microtime(true);
+               $this->profiler->startRecording('network');
 
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
@@ -405,7 +417,7 @@ class HTTPRequest implements IHTTPRequest
                $body = curl_exec($ch);
                curl_close($ch);
 
-               $this->profiler->saveTimestamp($stamp1, "network");
+               $this->profiler->stopRecording();
 
                if (trim($body) == "") {
                        return $url;