lib/kolab_client_task.php lib/kolab_utils.php

Aleksander Machniak machniak at kolabsys.com
Thu Feb 23 14:41:18 CET 2012


 lib/kolab_client_task.php |    6 +++---
 lib/kolab_utils.php       |   25 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 3 deletions(-)

New commits:
commit 780cc50f5f1acd9963edc0ccff1ebee9f612827a
Author: Aleksander Machniak <alec at alec.pl>
Date:   Thu Feb 23 14:38:05 2012 +0100

    Added protocol detection to build proper API URL

diff --git a/lib/kolab_client_task.php b/lib/kolab_client_task.php
index 7cc8863..6a6fac1 100644
--- a/lib/kolab_client_task.php
+++ b/lib/kolab_client_task.php
@@ -103,11 +103,11 @@ class kolab_client_task
      */
     private function api_init()
     {
-        $url = $this->config_get('api_url', '');
+       $url = $this->config_get('api_url', '');
 
         if (!$url) {
-    	    // @TODO: http/https
-            $url = 'http://' . $_SERVER['SERVER_NAME'];
+            $url = kolab_utils::https_check() ? 'https://' : 'http://';
+            $url .= $_SERVER['SERVER_NAME'];
             $url .= preg_replace('/\/?\?.*$/', '', $_SERVER['REQUEST_URI']);
             $url .= '/api';
         }
diff --git a/lib/kolab_utils.php b/lib/kolab_utils.php
index 167c9d2..390b9eb 100644
--- a/lib/kolab_utils.php
+++ b/lib/kolab_utils.php
@@ -103,6 +103,10 @@ class kolab_utils
 
     /**
      * Make sure the string ends with a slash
+     *
+     * @param string $str String to parse
+     *
+     * @return string String with one slash at the end
      */
     public static function slashify($str)
     {
@@ -111,10 +115,31 @@ class kolab_utils
 
     /**
      * Remove slash at the end of the string
+     *
+     * @param string $str String to parse
+     *
+     * @return string String without any slashes at the end
      */
     public static function unslashify($str)
     {
         return preg_replace('/\/$/', '', $str);
     }
 
+    /**
+     * Check if secure protocol is being used.
+     *
+     * @return bool True when using https protocol, False otherwise
+     */
+    public static function https_check()
+    {
+        if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') {
+            return true;
+        }
+
+        if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') {
+            return true;
+        }
+
+        return false;
+    }
 }





More information about the commits mailing list