From: Joey Hess Date: Thu, 11 Oct 2012 15:22:03 +0000 (-0400) Subject: add cgi_overload_message X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b1cd1c067f5f5d20afc4db3731fa5cebaeed0635;p=ikiwiki.git add cgi_overload_message --- diff --git a/IkiWiki.pm b/IkiWiki.pm index a7dc6b36b..52da3c112 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -126,6 +126,14 @@ sub getsetup () { safe => 1, rebuild => 0, }, + cgi_overload_message => { + type => "string", + default => '', + example => "Please wait", + description => "message to display when overloaded (may contain html)", + safe => 1, + rebuild => 0, + }, rcs => { type => "string", default => '', diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm index 0855a3ba2..06be36dfc 100644 --- a/IkiWiki/Wrapper.pm +++ b/IkiWiki/Wrapper.pm @@ -105,6 +105,14 @@ EOF my $i=int($config{cgi_overload_delay}); $pre_exec.="#define CGI_OVERLOAD_DELAY $i\n" if $i > 0; + my $msg=gettext("Please wait"); + $msg=~s/"/\\"/g; + $pre_exec.='#define CGI_PLEASE_WAIT_TITLE "'.$msg."\"\n"; + if (defined $config{cgi_overload_message} && length $config{cgi_overload_message}) { + $msg=$config{cgi_overload_message}; + $msg=~s/"/\\"/g; + } + $pre_exec.='#define CGI_PLEASE_WAIT_BODY "'.$msg."\"\n"; } $pre_exec.=<<"EOF"; lockfd=open("$config{wikistatedir}/cgilock", O_CREAT | O_RDWR, 0666); @@ -116,9 +124,11 @@ EOF set_cgilock_fd(lockfd); } else { - printf("Content-Type: text/html\\nRefresh: %i; URL=%s\\n\\nplease wait...

Please wait ...

", + printf("Content-Type: text/html\\nRefresh: %i; URL=%s\\n\\n%s

%s

", CGI_OVERLOAD_DELAY, - getenv("REQUEST_URI")); + getenv("REQUEST_URI"), + CGI_PLEASE_WAIT_TITLE, + CGI_PLEASE_WAIT_BODY); exit(0); } }