wfProfileIn( $fname.'-SetupSession' );
if ( $wgDBprefix ) {
- session_name( $wgDBname . '_' . $wgDBprefix . '_session' );
+ $wgCookiePrefix = $wgDBname . '_' . $wgDBprefix;
+} elseif ( $wgSharedDB ) {
+ $wgCookiePrefix = $wgSharedDB;
} else {
- session_name( $wgDBname . '_session' );
+ $wgCookiePrefix = $wgDBname;
}
-if( !$wgCommandLineMode && ( isset( $_COOKIE[session_name()] ) || isset( $_COOKIE[$wgDBname.'Token'] ) ) ) {
+# If session.auto_start is there, we can't touch session name
+#
+if (!ini_get('session.auto_start')) {
+ session_name( $wgCookiePrefix . '_session' );
+}
+
+if( !$wgCommandLineMode && ( isset( $_COOKIE[session_name()] ) || isset( $_COOKIE[$wgCookiePrefix.'Token'] ) ) ) {
wfIncrStats( 'request_with_session' );
User::SetupSession();
$wgSessionStarted = true;
$wgLang = &$wgContLang;
} else {
wfSuppressWarnings();
+ // Preload base classes to work around APC/PHP5 bug
+ include_once("$IP/languages/$wgLangClass.deps.php");
include_once("$IP/languages/$wgLangClass.php");
wfRestoreWarnings();