X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Fservices.cgi;h=26ab4f3143fff36434287ec085aaa47993726ff1;hb=f93238725f2f73975dff1a2c67820d9480a100e6;hp=123c3258792ddab8da3350c2c9600dca3132d483;hpb=afffb56a11db3456e574c292beb048ea21ac91d1;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi index 123c325879..26ab4f3143 100644 --- a/html/cgi-bin/services.cgi +++ b/html/cgi-bin/services.cgi @@ -49,13 +49,14 @@ my %servicenames =( $Lang::tr{'dhcp server'} => 'dhcpd', $Lang::tr{'web server'} => 'httpd', $Lang::tr{'cron server'} => 'fcron', - $Lang::tr{'dns proxy server'} => 'dnsmasq', + $Lang::tr{'dns proxy server'} => 'unbound', $Lang::tr{'logging server'} => 'syslogd', $Lang::tr{'kernel logging server'} => 'klogd', $Lang::tr{'ntp server'} => 'ntpd', $Lang::tr{'secure shell server'} => 'sshd', - $Lang::tr{'vpn'} => 'pluto', + $Lang::tr{'vpn'} => 'charon', $Lang::tr{'web proxy'} => 'squid', + $Lang::tr{'intrusion detection system'} => 'suricata', 'OpenVPN' => 'openvpn' ); @@ -71,30 +72,15 @@ my %link =( $Lang::tr{'vpn'} => "$Lang::tr{'vpn'}", $Lang::tr{'web proxy'} => "$Lang::tr{'web proxy'}", 'OpenVPN' => "OpenVPN", - "$Lang::tr{'intrusion detection system'} (GREEN)" => "$Lang::tr{'intrusion detection system'} (GREEN)", - "$Lang::tr{'intrusion detection system'} (RED)" => "$Lang::tr{'intrusion detection system'} (RED)", - "$Lang::tr{'intrusion detection system'} (ORANGE)" => "$Lang::tr{'intrusion detection system'} (ORANGE)", - "$Lang::tr{'intrusion detection system'} (BLUE)" => "$Lang::tr{'intrusion detection system'} (BLUE)" + "$Lang::tr{'intrusion detection system'}" => "$Lang::tr{'intrusion detection system'}", ); -my $lines=0; # Used to count the outputlines to make different bgcolor - -my $iface = ''; -if (open(FILE, "${General::swroot}/red/iface")){ - $iface = ; - close FILE; - chomp $iface; -} - -$servicenames{"$Lang::tr{'intrusion detection system'} (RED)"} = "snort_${iface}"; -$servicenames{"$Lang::tr{'intrusion detection system'} (GREEN)"} = "snort_$netsettings{'GREEN_DEV'}"; +# Hash to overwrite the process name of a process if it differs fromt the launch command. +my %overwrite_exename_hash = ( + "suricata" => "Suricata-Main" +); -if ($netsettings{'ORANGE_DEV'} ne ''){ - $servicenames{"$Lang::tr{'intrusion detection system'} (ORANGE)"} = "snort_$netsettings{'ORANGE_DEV'}"; -} -if ($netsettings{'BLUE_DEV'} ne ''){ - $servicenames{"$Lang::tr{'intrusion detection system'} (BLUE)"} = "snort_$netsettings{'BLUE_DEV'}"; -} +my $lines=0; # Used to count the outputlines to make different bgcolor my @querry = split(/\?/,$ENV{'QUERY_STRING'}); $querry[0] = '' unless defined $querry[0]; @@ -116,25 +102,33 @@ if ( $querry[0] =~ "processescpu"){ &Header::openbox('100%', 'left', $Lang::tr{'services'}); print < - - +
$Lang::tr{'services'}$Lang::tr{'status'}PID$Lang::tr{'memory'}
+ + + + + + END ; my $key = ''; + my $col=""; foreach $key (sort keys %servicenames){ $lines++; if ($lines % 2){ - print "\n\n"; + $col="bgcolor='$color{'color22'}'"; + print ""; }else{ - print "\n\n"; + $col="bgcolor='$color{'color20'}'"; + print ""; } my $shortname = $servicenames{$key}; - my $status = &isrunning($shortname); + my $status = &isrunning($shortname,$col); print "$status\n"; print "\n"; @@ -152,14 +146,14 @@ END print < -
$Lang::tr{'services'}$Lang::tr{'status'}PID$Lang::tr{'memory'}
"; - print %link->{$key}; - print "
"; + print $link{$key}; + print "
"; - print %link->{$key}; - print "
"; + print $link{$key}; + print "
- - - - - - - +
AddonBoot$Lang::tr{'action'}$Lang::tr{'status'}PID$Lang::tr{'memory'}
+ + + + + + + END ; @@ -180,19 +174,24 @@ END # mdadm should not stopped with webif because this could crash the system # chomp($_); + if ( $_ eq 'squid' ) { + next; + } if ( ($_ ne "alsa") && ($_ ne "mdadm") ) { $lines++; if ($lines % 2){ - print ""; + print ""; + $col="bgcolor='$color{'color22'}'"; }else{ - print ""; + print ""; + $col="bgcolor='$color{'color20'}'"; } - print " "; - my $status = isautorun($_); + print " "; + my $status = isautorun($_,$col); print "$status "; - print ""; - print " "; - my $status = &isrunningaddon($_); + print ""; + print " "; + my $status = &isrunningaddon($_,$col); $status =~ s/\\[[0-1]\;[0-9]+m//g; chomp($status); @@ -219,16 +218,17 @@ END sub isautorun{ my $cmd = $_[0]; - my $status = ""; + my $col = $_[1]; + my $status = ""; my $init = `find /etc/rc.d/rc3.d/S??${cmd} 2>/dev/null`; chomp ($init); if ($init ne ''){ - $status = ""; + $status = ""; } $init = `find /etc/rc.d/rc3.d/off/S??${cmd} 2>/dev/null`; chomp ($init); if ($init ne ''){ - $status = ""; + $status = ""; } return $status; @@ -236,14 +236,28 @@ sub isautorun{ sub isrunning{ my $cmd = $_[0]; - my $status = ""; + my $col = $_[1]; + my $status = ""; my $pid = ''; my $testcmd = ''; my $exename; my $memory; $cmd =~ /(^[a-z]+)/; - $exename = $1; + + # Check if the exename needs to be overwritten. + # This happens if the expected process name string + # differs from the real one. This may happened if + # a service uses multiple processes or threads. + if (exists($overwrite_exename_hash{$1})) { + # Grab the string which will be reported by + # the process from the corresponding hash. + $exename = $overwrite_exename_hash{$1}; + } else { + # Directly expect the launched command as + # process name. + $exename = $1; + } if (open(FILE, "/var/run/${cmd}.pid")){ $pid = ; chomp $pid; @@ -267,7 +281,7 @@ sub isrunning{ close(FILE); } if ($testcmd =~ /$exename/){ - $status = ""; + $status = ""; } } return $status; @@ -275,7 +289,8 @@ sub isrunning{ sub isrunningaddon{ my $cmd = $_[0]; - my $status = ""; + my $col = $_[1]; + my $status = ""; my $pid = ''; my $testcmd = ''; my $exename; @@ -293,7 +308,7 @@ sub isrunningaddon{ $testcmd =~ s///gi; my @pid = split(/\s/,$testcmd); - $status .=""; + $status .=""; my $memory = 0; @@ -305,9 +320,9 @@ sub isrunningaddon{ } $memory+=$memory[0]; } - $status .=""; + $status .=""; }else{ - $status = ""; + $status = ""; } return $status; }
AddonBoot$Lang::tr{'action'}$Lang::tr{'status'}PID$Lang::tr{'memory'}
$_$_$Lang::tr{$Lang::tr{$Lang::tr{$Lang::tr{$Lang::tr{$Lang::tr{$Lang::tr{$Lang::tr{$Lang::tr{'stopped'}$Lang::tr{'stopped'}$Lang::tr{'running'}$pid$memory$Lang::tr{'running'}$pid$memory$Lang::tr{'stopped'}$Lang::tr{'stopped'}$pid[0]$pid[0]$memory KB$memory KB$Lang::tr{'stopped'}$Lang::tr{'stopped'}