From b1cd1c067f5f5d20afc4db3731fa5cebaeed0635 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@kitenet.net> Date: Thu, 11 Oct 2012 11:22:03 -0400 Subject: [PATCH] add cgi_overload_message --- IkiWiki.pm | 8 ++++++++ IkiWiki/Wrapper.pm | 14 ++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) 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\\n<html><head><title>please wait...</title><head><body><p>Please wait ...</p></body></html>", + printf("Content-Type: text/html\\nRefresh: %i; URL=%s\\n\\n<html><head><title>%s</title><head><body><p>%s</p></body></html>", CGI_OVERLOAD_DELAY, - getenv("REQUEST_URI")); + getenv("REQUEST_URI"), + CGI_PLEASE_WAIT_TITLE, + CGI_PLEASE_WAIT_BODY); exit(0); } } -- 2.39.5