Compare commits

...

1 Commits

Author SHA1 Message Date
Aki Goto
16053e26d7 fix namespace locking problem when using with FastCGI servers 2022-09-22 14:06:37 +09:00

View File

@@ -55,6 +55,8 @@ our ($NamespacesMain, $NamespacesSelf, $NamespaceCurrent,
$NamespaceRoot, $NamespaceSlashing, @NamespaceParameters, $NamespaceRoot, $NamespaceSlashing, @NamespaceParameters,
%Namespaces, $NamespacesRootDataDir); %Namespaces, $NamespacesRootDataDir);
our ($OriginalSiteName, $OriginalInterWikiMoniker, $OriginalDataDir, $OriginalScriptName, $OriginalFullUrl, $OriginalStaticDir, $OriginalStaticUrl, $OriginalWikiDescription);
$NamespacesMain = 'Main'; # to get back to the main namespace $NamespacesMain = 'Main'; # to get back to the main namespace
$NamespacesSelf = 'Self'; # for your own namespace $NamespacesSelf = 'Self'; # for your own namespace
$NamespaceCurrent = ''; # the current namespace, if any $NamespaceCurrent = ''; # the current namespace, if any
@@ -104,6 +106,23 @@ sub GetNamespace {
} }
sub NamespacesInitVariables { sub NamespacesInitVariables {
$OriginalSiteName //= $SiteName;
$SiteName = $OriginalSiteName;
$OriginalInterWikiMoniker //= $InterWikiMoniker;
$InterWikiMoniker = $OriginalInterWikiMoniker;
$OriginalDataDir //= $DataDir;
$DataDir = $OriginalDataDir;
$OriginalScriptName //= $ScriptName;
$ScriptName = $OriginalScriptName;
$OriginalFullUrl //= $FullUrl;
$FullUrl = $OriginalFullUrl;
$OriginalStaticDir //= $StaticDir;
$StaticDir = $OriginalStaticDir;
$OriginalStaticUrl //= $StaticUrl;
$StaticUrl = $OriginalStaticUrl;
$OriginalWikiDescription //= $WikiDescription;
$WikiDescription = $OriginalWikiDescription;
%Namespaces = (); %Namespaces = ();
# Do this before changing the $DataDir and $ScriptName # Do this before changing the $DataDir and $ScriptName
if ($UsePathInfo) { if ($UsePathInfo) {
@@ -129,6 +148,7 @@ sub NamespacesInitVariables {
$SiteName .= ' ' . NormalToFree($NamespaceCurrent); $SiteName .= ' ' . NormalToFree($NamespaceCurrent);
$InterWikiMoniker = $NamespaceCurrent; $InterWikiMoniker = $NamespaceCurrent;
$DataDir .= '/' . $NamespaceCurrent; $DataDir .= '/' . $NamespaceCurrent;
}
$PageDir = "$DataDir/page"; $PageDir = "$DataDir/page";
$KeepDir = "$DataDir/keep"; $KeepDir = "$DataDir/keep";
$RefererDir = "$DataDir/referer"; $RefererDir = "$DataDir/referer";
@@ -143,6 +163,9 @@ sub NamespacesInitVariables {
# $ConfigFile -- shared # $ConfigFile -- shared
# $ModuleDir -- shared # $ModuleDir -- shared
# $NearDir -- shared # $NearDir -- shared
if ($ns
and $ns ne $NamespacesMain
and $ns ne $NamespacesSelf) {
$ScriptName .= '/' . UrlEncode($NamespaceCurrent); $ScriptName .= '/' . UrlEncode($NamespaceCurrent);
$FullUrl .= '/' . UrlEncode($NamespaceCurrent); $FullUrl .= '/' . UrlEncode($NamespaceCurrent);
$StaticDir .= '/' . $NamespaceCurrent; # from static-copy.pl $StaticDir .= '/' . $NamespaceCurrent; # from static-copy.pl