Apache 2.4.27 breaks 'ExtraHD'-GUI => "Internal server error":
Opening 'extrahd.cgi' led to: "Response header name 'scanhd idescanhd partitionsCache-control' contains invalid characters, aborting request".
Triggered by: https://forum.ipfire.org/viewtopic.php?f=27&t=19550#p111030
Discussion: https://forum.ipfire.org/viewtopic.php?f=50&t=19563&sid=575337ac1caf...
Solution (thanks gocart!): https://forum.ipfire.org/viewtopic.php?f=22&t=19563#p111052
=> Redirect '/usr/local/bin/extrahdctrl'-output to stdout.
Furthermore, I added a "workaround to suppress a warning when a variable is used only once" in 'extrahd.cgi', because after activating 'use warnings' and 'fatals to browser' I got "possible typo"-warnings in 'error_log'.
Plus, fixed typo in 'extrahd.pl'.
Best, Matthias
Signed-off-by: Matthias Fischer matthias.fischer@ipfire.org --- config/extrahd/extrahd.pl | 2 +- html/cgi-bin/extrahd.cgi | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/config/extrahd/extrahd.pl b/config/extrahd/extrahd.pl index 6593ca47d..3c6fa0280 100644 --- a/config/extrahd/extrahd.pl +++ b/config/extrahd/extrahd.pl @@ -77,7 +77,7 @@ if ( "$ARGV[0]" eq "mount" ) { if ( ! `/bin/mount | /bin/fgrep $ARGV[1]` ) { system("/bin/cp -f /etc/fstab $fstab"); system("/bin/fgrep -v $ARGV[1] <$fstab >/etc/fstab"); - print "Succesfully umounted $ARGV[1].\n"; + print "Successfully umounted $ARGV[1].\n"; exit(0); } else { print "Can't umount $ARGV[1].\n"; diff --git a/html/cgi-bin/extrahd.cgi b/html/cgi-bin/extrahd.cgi index 5a6fbce83..da1efb2dd 100644 --- a/html/cgi-bin/extrahd.cgi +++ b/html/cgi-bin/extrahd.cgi @@ -48,8 +48,13 @@ my $partitionentry = ""; my $devicefile = "/var/ipfire/extrahd/devices"; my $scanfile = "/var/ipfire/extrahd/scan"; my $partitionsfile = "/var/ipfire/extrahd/partitions"; -system("/usr/local/bin/extrahdctrl scanhd ide"); -system("/usr/local/bin/extrahdctrl scanhd partitions"); + +#workaround to suppress a warning when a variable is used only once +my @dummy = ( ${Header::colourgreen}, ${Header::colourred} ); +undef (@dummy); + +system("/usr/local/bin/extrahdctrl scanhd ide >/dev/null"); +system("/usr/local/bin/extrahdctrl scanhd partitions >/dev/null");
&Header::showhttpheaders();