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,20 +148,24 @@ sub NamespacesInitVariables {
$SiteName .= ' ' . NormalToFree($NamespaceCurrent); $SiteName .= ' ' . NormalToFree($NamespaceCurrent);
$InterWikiMoniker = $NamespaceCurrent; $InterWikiMoniker = $NamespaceCurrent;
$DataDir .= '/' . $NamespaceCurrent; $DataDir .= '/' . $NamespaceCurrent;
$PageDir = "$DataDir/page"; }
$KeepDir = "$DataDir/keep"; $PageDir = "$DataDir/page";
$RefererDir = "$DataDir/referer"; $KeepDir = "$DataDir/keep";
$TempDir = "$DataDir/temp"; $RefererDir = "$DataDir/referer";
$LockDir = "$TempDir/lock"; $TempDir = "$DataDir/temp";
$NoEditFile = "$DataDir/noedit"; $LockDir = "$TempDir/lock";
$RcFile = "$DataDir/rc.log"; $NoEditFile = "$DataDir/noedit";
$RcOldFile = "$DataDir/oldrc.log"; $RcFile = "$DataDir/rc.log";
$IndexFile = "$DataDir/pageidx"; $RcOldFile = "$DataDir/oldrc.log";
$VisitorFile = "$DataDir/visitors.log"; $IndexFile = "$DataDir/pageidx";
$PermanentAnchorsFile = "$DataDir/permanentanchors"; $VisitorFile = "$DataDir/visitors.log";
# $ConfigFile -- shared $PermanentAnchorsFile = "$DataDir/permanentanchors";
# $ModuleDir -- shared # $ConfigFile -- shared
# $NearDir -- shared # $ModuleDir -- 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