From 301fea8684f194bd622994494706b3676fdea299 Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <ben.lort@gmail.com>
Date: Fri, 28 Oct 2016 05:51:39 -0400
Subject: [PATCH] ping.php performance: caching baseurl

---
 boot.php | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/boot.php b/boot.php
index e49ffbd221..4fefe6f7ed 100644
--- a/boot.php
+++ b/boot.php
@@ -787,27 +787,29 @@ class App {
 		if (!is_object($this))
 			return(self::$a->get_baseurl($ssl));
 
-		$scheme = $this->scheme;
+		if (!$this->baseurl) {
+			$scheme = $this->scheme;
 
-		if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
-			if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL))
-				$scheme = 'https';
-
-			//	Basically, we have $ssl = true on any links which can only be seen by a logged in user
-			//	(and also the login link). Anything seen by an outsider will have it turned off.
-
-			if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
-				if($ssl)
+			if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
+				if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL))
 					$scheme = 'https';
-				else
-					$scheme = 'http';
+
+				//	Basically, we have $ssl = true on any links which can only be seen by a logged in user
+				//	(and also the login link). Anything seen by an outsider will have it turned off.
+
+				if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
+					if($ssl)
+						$scheme = 'https';
+					else
+						$scheme = 'http';
+				}
 			}
+
+			if (get_config('config','hostname') != "")
+				$this->hostname = get_config('config','hostname');
+
+			$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
 		}
-
-		if (get_config('config','hostname') != "")
-			$this->hostname = get_config('config','hostname');
-
-		$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
 		return $this->baseurl;
 	}