From 24ee60492b21b85c9bf1288e43c774d5cfa8243e Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 19 Mar 2017 19:03:09 +0000 Subject: [PATCH 1/3] If the maintenance reason is a url, then redirect to this address --- mod/maintenance.php | 11 ++++++++++- util/maintenance.php | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/mod/maintenance.php b/mod/maintenance.php index 98155b93ad..c4839de792 100644 --- a/mod/maintenance.php +++ b/mod/maintenance.php @@ -3,12 +3,21 @@ use \Friendica\Core\Config; function maintenance_content(App $a) { + + $reason = Config::get('system', 'maintenance_reason'); + + if (substr(normalise_link($reason), 0, 7) == 'http://') { + header("HTTP/1.1 307 Temporary Redirect"); + header("Location:".$reason); + return; + } + header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 600'); return replace_macros(get_markup_template('maintenance.tpl'), array( '$sysdown' => t('System down for maintenance'), - '$reason' => Config::get('system', 'maintenance_reason') + '$reason' => $reason )); } diff --git a/util/maintenance.php b/util/maintenance.php index b313783a7d..650dade700 100644 --- a/util/maintenance.php +++ b/util/maintenance.php @@ -49,5 +49,5 @@ if ($reason != '') { } echo "Usage:\n\n"; -echo "\tphp {$argv[0]} [1] [Maintenance reason]\tSet the system in maintenance mode\n"; +echo "\tphp {$argv[0]} [1] [Maintenance reason|redirection url]\tSet the system in maintenance mode\n"; echo "\tphp {$argv[0]} 0 \tSet the system in normal mode\n\n"; From aa4f9c985f02faafe9223a7d3800fc56de3f0caf Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 20 Mar 2017 04:37:13 +0000 Subject: [PATCH 2/3] Enhanced explanation --- util/maintenance.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/util/maintenance.php b/util/maintenance.php index 650dade700..5d0c62196c 100644 --- a/util/maintenance.php +++ b/util/maintenance.php @@ -21,7 +21,7 @@ if ($argc > 1) { $maint_mode = intval($argv[1]); } -Config::set('system', 'maintenance', $maint_mode); +//Config::set('system', 'maintenance', $maint_mode); if ($maint_mode AND ($argc > 2)) { $reason_arr = $argv; @@ -49,5 +49,14 @@ if ($reason != '') { } echo "Usage:\n\n"; -echo "\tphp {$argv[0]} [1] [Maintenance reason|redirection url]\tSet the system in maintenance mode\n"; -echo "\tphp {$argv[0]} 0 \tSet the system in normal mode\n\n"; +echo "\tphp {$argv[0]} [1] [Maintenance reason|redirection url]\n"; +echo "\t\tSet the system in maintenance mode\n\n"; +echo "\t\tIf the optionally entered maintenance reason is an url\n"; +echo "\t\tthe visitor is redirected to that page.\n"; +echo "\n"; +echo "\t\tExamples:\n"; +echo "\t\t\tphp {$argv[0]} 1 System upgrade\n"; +echo "\t\t\tphp {$argv[0]} 1 http://domain.tld/downtime\n"; +echo "\n"; +echo "\tphp {$argv[0]} 0\n"; +echo "\t\tSet the system in normal mode\n\n"; From 62915007c6871c1376935fa1a7751d751170b00d Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 20 Mar 2017 04:37:59 +0000 Subject: [PATCH 3/3] Test code removed --- util/maintenance.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/maintenance.php b/util/maintenance.php index 5d0c62196c..614344ab93 100644 --- a/util/maintenance.php +++ b/util/maintenance.php @@ -21,7 +21,7 @@ if ($argc > 1) { $maint_mode = intval($argv[1]); } -//Config::set('system', 'maintenance', $maint_mode); +Config::set('system', 'maintenance', $maint_mode); if ($maint_mode AND ($argc > 2)) { $reason_arr = $argv;