X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Fservices.cgi;h=a1dcfd57e8ccf79a469adf38c4293d47d58ef85c;hb=8aab72f01bf6035255f0c7efbed36b24638adf6d;hp=36954ba70367c2ae51e4d6aefb1cf94311157bb0;hpb=d978558809285afcee56b2120b10d9107b1b260b;p=people%2Fpmueller%2Fipfire-2.x.git
diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi
index 36954ba703..a1dcfd57e8 100644
--- a/html/cgi-bin/services.cgi
+++ b/html/cgi-bin/services.cgi
@@ -2,7 +2,7 @@
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2005-2010 IPFire Team #
+# Copyright (C) 2005-2021 IPFire Team #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
@@ -34,7 +34,7 @@ my %color = ();
my %mainsettings = ();
my %netsettings=();
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
-&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
+&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
#workaround to suppress a warning when a variable is used only once
@@ -64,7 +64,7 @@ my %link =(
$Lang::tr{'dhcp server'} => "$Lang::tr{'dhcp server'}",
$Lang::tr{'web server'} => $Lang::tr{'web server'},
$Lang::tr{'cron server'} => $Lang::tr{'cron server'},
- $Lang::tr{'dns proxy server'} => $Lang::tr{'dns proxy server'},
+ $Lang::tr{'dns proxy server'} => "$Lang::tr{'dns proxy server'}",
$Lang::tr{'logging server'} => $Lang::tr{'logging server'},
$Lang::tr{'kernel logging server'} => $Lang::tr{'kernel logging server'},
$Lang::tr{'ntp server'} => "$Lang::tr{'ntp server'}",
@@ -141,7 +141,7 @@ END
my $paramstr=$ENV{QUERY_STRING};
my @param=split(/!/, $paramstr);
if ($param[1] ne ''){
- system("/usr/local/bin/addonctrl @param[0] @param[1] > /dev/null 2>&1");
+ &General::system("/usr/local/bin/addonctrl", "$param[0]", "$param[1]");
}
print <";
$col="bgcolor='$color{'color20'}'";
}
+
print "$_ | ";
my $status = isautorun($_,$col);
print "$status ";
@@ -217,27 +220,54 @@ END
&Header::closepage();
}
-sub isautorun{
- my $cmd = $_[0];
- my $col = $_[1];
+sub isautorun (@) {
+ my ($cmd, $col) = @_;
+
+ # Init directory.
+ my $initdir = "/etc/rc.d/rc3.d/";
+
my $status = " | ";
- my $init = `find /etc/rc.d/rc3.d/S??${cmd} 2>/dev/null`;
- chomp ($init);
- if ($init ne ''){
+
+ # Check if autorun for the given cmd is enabled.
+ if ( &find_init("$cmd", "$initdir") ) {
+ # Adjust status.
$status = " | ";
- }
- $init = `find /etc/rc.d/rc3.d/off/S??${cmd} 2>/dev/null`;
- chomp ($init);
- if ($init ne ''){
+ } else {
+ # Adjust status.
$status = " | ";
}
+ # Return the status.
return $status;
}
-sub isrunning{
- my $cmd = $_[0];
- my $col = $_[1];
+sub find_init (@) {
+ my ($cmd, $dir) = @_;
+
+ # Open given init directory.
+ opendir (INITDIR, "$dir") || die "Cannot opendir $dir: $!";
+
+ # Read-in init files from directory.
+ my @inits = readdir(INITDIR);
+
+ # Close directory handle.
+ closedir(INITDIR);
+
+ # Loop through the directory.
+ foreach my $init (@inits) {
+ # Check if the current processed file belongs to the given command.
+ if ($init =~ /S\d+\d+$cmd\z/) {
+ # Found, return "1" - True.
+ return "1";
+ }
+ }
+
+ # Nothing found, return nothing.
+ return;
+}
+
+sub isrunning (@) {
+ my ($cmd, $col) = @_;
my $status = "$Lang::tr{'stopped'} | | ";
my $pid = '';
my $testcmd = '';
@@ -288,16 +318,17 @@ sub isrunning{
return $status;
}
-sub isrunningaddon{
- my $cmd = $_[0];
- my $col = $_[1];
+sub isrunningaddon (@) {
+ my ($cmd, $col) = @_;
+
my $status = "$Lang::tr{'stopped'} | | ";
my $pid = '';
my $testcmd = '';
my $exename;
my @memory;
- my $testcmd = `/usr/local/bin/addonctrl $_ status 2>/dev/null`;
+ my @testcmd = &General::system_output("/usr/local/bin/addonctrl", "$cmd", "status");
+ my $testcmd = @testcmd[0];
if ( $testcmd =~ /is\ running/ && $testcmd !~ /is\ not\ running/){
$status = "$Lang::tr{'running'} | ";