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 = "$Lang::tr{"; - } - $init = `find /etc/rc.d/rc3.d/off/S??${cmd} 2>/dev/null`; - chomp ($init); - if ($init ne ''){ + } else { + # Adjust status. $status = "$Lang::tr{"; } + # 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'}";