From ac29f27b1790e12b5ce50a6953714879b8f79630 Mon Sep 17 00:00:00 2001
From: Robin Appelman <robin@icewind.nl>
Date: Wed, 10 Mar 2021 17:22:31 +0100
Subject: [PATCH] cache baseurl in url generator

Servers don't tend to change their url in the middle of a request

Signed-off-by: Robin Appelman <robin@icewind.nl>
---
 lib/private/URLGenerator.php | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/private/URLGenerator.php b/lib/private/URLGenerator.php
index f0de31568f4..6c68f5d805f 100644
--- a/lib/private/URLGenerator.php
+++ b/lib/private/URLGenerator.php
@@ -59,6 +59,8 @@ class URLGenerator implements IURLGenerator {
 	private $request;
 	/** @var Router */
 	private $router;
+	/** @var null|string */
+	private $baseUrl = null;
 
 	public function __construct(IConfig $config,
 								ICacheFactory $cacheFactory,
@@ -269,6 +271,9 @@ class URLGenerator implements IURLGenerator {
 	 * @return string base url of the current request
 	 */
 	public function getBaseUrl(): string {
-		return $this->request->getServerProtocol() . '://' . $this->request->getServerHost() . \OC::$WEBROOT;
+		if ($this->baseUrl === null) {
+			$this->baseUrl = $this->request->getServerProtocol() . '://' . $this->request->getServerHost() . \OC::$WEBROOT;
+		}
+		return $this->baseUrl;
 	}
 }
-- 
GitLab