From d4ea853fcf3b3f82e2e489c81280b27bfbd62bf3 Mon Sep 17 00:00:00 2001
From: Frank Karlitschek <frank@owncloud.org>
Date: Thu, 31 May 2012 20:26:09 +0200
Subject: [PATCH] use our own serverHost call so that ownCloud works with
 reverse proxy servers

---
 apps/files_sharing/ajax/email.php | 4 ++--
 apps/user_openid/phpmyid.php      | 2 +-
 apps/user_openid/user_openid.php  | 4 ++--
 core/lostpassword/index.php       | 2 +-
 lib/ocs.php                       | 4 ++--
 ocs/providers.php                 | 2 +-
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/apps/files_sharing/ajax/email.php b/apps/files_sharing/ajax/email.php
index 163683cd0e3..523c3d2078b 100644
--- a/apps/files_sharing/ajax/email.php
+++ b/apps/files_sharing/ajax/email.php
@@ -7,7 +7,7 @@ $type = (strpos($_POST['file'], '.') === false) ? 'folder' : 'file';
 $subject = $user.' shared a '.$type.' with you';
 $link = $_POST['link'];
 $text = $user.' shared the '.$type.' '.$_POST['file'].' with you. It is available for download here: '.$link;
-$fromaddress = OCP\Config::getUserValue($user, 'settings', 'email', 'sharing-noreply@'.$_SERVER['HTTP_HOST']);
+$fromaddress = OCP\Config::getUserValue($user, 'settings', 'email', 'sharing-noreply@'.OCP\Util::getServerHost());
 OC_Mail::send($_POST['toaddress'], $_POST['toaddress'], $subject, $text, $fromaddress, $user);
 
-?>
\ No newline at end of file
+?>
diff --git a/apps/user_openid/phpmyid.php b/apps/user_openid/phpmyid.php
index 137daa485a9..5aaab642856 100644
--- a/apps/user_openid/phpmyid.php
+++ b/apps/user_openid/phpmyid.php
@@ -1624,7 +1624,7 @@ if (! array_key_exists('idp_url', $profile))
 //Determine the requested URL - DO NOT OVERRIDE
 $profile['req_url'] = sprintf("%s://%s%s",
 		      $proto,
-		      $_SERVER['HTTP_HOST'],
+		      OCP\Util::getServerHost(),
 // 		      $port,//host  already includes the path
 		      $_SERVER["REQUEST_URI"]);
 
diff --git a/apps/user_openid/user_openid.php b/apps/user_openid/user_openid.php
index 8deb42f68c8..3267db3fa0f 100644
--- a/apps/user_openid/user_openid.php
+++ b/apps/user_openid/user_openid.php
@@ -39,9 +39,9 @@ class OC_USER_OPENID extends OC_User_Backend {
 		// Get identity from user and redirect browser to OpenID Server
 		$openid = new SimpleOpenID;
 		$openid->SetIdentity($uid);
-		$openid->SetTrustRoot('http://' . $_SERVER["HTTP_HOST"]);
+		$openid->SetTrustRoot('http://' . OCP\Util::getServerHost());
 		if ($openid->GetOpenIDServer()){
-			$openid->SetApprovedURL('http://' . $_SERVER["HTTP_HOST"] . OC::$WEBROOT);      // Send Response from OpenID server to this script
+			$openid->SetApprovedURL('http://' . OCP\Util::getServerHost() . OC::$WEBROOT);      // Send Response from OpenID server to this script
 			$openid->Redirect();     // This will redirect user to OpenID Server
 			exit;
 		}else{
diff --git a/core/lostpassword/index.php b/core/lostpassword/index.php
index 6a4748588fc..f1d90eaeffe 100644
--- a/core/lostpassword/index.php
+++ b/core/lostpassword/index.php
@@ -22,7 +22,7 @@ if (isset($_POST['user'])) {
 			$tmpl->assign('link', $link);
 			$msg = $tmpl->fetchPage();
 			$l = OC_L10N::get('core');
-			$from = 'lostpassword-noreply@' . $_SERVER['HTTP_HOST'];
+			$from = 'lostpassword-noreply@' . OCP\Util::getServerHost();
 			$r=mail($email, $l->t('Owncloud password reset'), $msg, 'From:' . $from);
 			OC_MAIL::send($email,$_POST['user'],$l->t('ownCloud password reset'),$msg,$from,'ownCloud');
 			echo('sent');
diff --git a/lib/ocs.php b/lib/ocs.php
index e28eb61987c..1be41202d78 100644
--- a/lib/ocs.php
+++ b/lib/ocs.php
@@ -357,11 +357,11 @@ class OC_OCS {
    */
   private static function apiConfig($format) {
     $user=OC_OCS::checkpassword(false);
-    $url=substr($_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'],0,-11).'';
+    $url=substr(OCP\Util::getServerHost().$_SERVER['SCRIPT_NAME'],0,-11).'';
 
     $xml['version']='1.5';
     $xml['website']='ownCloud';
-    $xml['host']=$_SERVER['HTTP_HOST'];
+    $xml['host']=OCP\Util::getServerHost();
     $xml['contact']='';
     $xml['ssl']='false';
     echo(OC_OCS::generatexml($format,'ok',100,'',$xml,'config','',1));
diff --git a/ocs/providers.php b/ocs/providers.php
index 397d2f06f5d..adaa28db6cd 100644
--- a/ocs/providers.php
+++ b/ocs/providers.php
@@ -23,7 +23,7 @@
 
 require_once('../lib/base.php');
 
-$url='http://'.substr($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'],0,-17).'ocs/v1.php/';
+$url='http://'.substr(OCP\Util::getServerHost().$_SERVER['REQUEST_URI'],0,-17).'ocs/v1.php/';
 
 echo('
 <providers>
-- 
GitLab