]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
add session ID to local URL when server parts differ
authorEvan Prodromou <evan@status.net>
Mon, 11 Jan 2010 07:51:57 +0000 (23:51 -0800)
committerEvan Prodromou <evan@status.net>
Mon, 11 Jan 2010 07:51:57 +0000 (23:51 -0800)
lib/util.php

index 7093d4e439e3000d17e9f72a544c463022a4036a..90d4a6532e1f6dc6116315d8634b42a1c16c9294 100644 (file)
@@ -820,6 +820,25 @@ function common_path($relative, $ssl=false)
         }
     }
 
+    if (common_have_session()) {
+
+        $currentServer = $_SERVER['HTTP_HOST'];
+
+        // Are we pointing to another server (like an SSL server?)
+
+        if (!empty($currentServer) &&
+            0 != strcasecmp($currentServer, $serverpart)) {
+            // Pass the session ID as a GET parameter
+            $sesspart = session_name() . '=' . session_id();
+            $i = strpos($relative, '?');
+            if ($i === false) { // no GET params, just append
+                $relative .= '?' . $sesspart;
+            } else {
+                $relative = substr($relative, 0, $i + 1).$sesspart.'&'.substr($relative, $i + 1);
+            }
+        }
+    }
+
     return $proto.'://'.$serverpart.'/'.$pathpart.$relative;
 }