--- projects/cms/source/host/ihost-perl/ihost.pl 2001/11/14 16:41:30 1.36 +++ projects/cms/source/host/ihost-perl/ihost.pl 2001/11/19 14:15:14 1.37 @@ -8,7 +8,7 @@ # a typical Unix/Linux box. # # $Author: tdb $ -# $Id: ihost.pl,v 1.36 2001/11/14 16:41:30 tdb Exp $ +# $Id: ihost.pl,v 1.37 2001/11/19 14:15:14 tdb Exp $ #------------------------------------------------------------ $| = 1; @@ -33,7 +33,7 @@ use vars qw ( $fqdn $pidfile $retry_wait - @statgrab + @data ); if (@ARGV != 2) { @@ -257,19 +257,25 @@ sub tcp_configure() { #----------------------------------------------------------------------- sub send_udp_packet() { - @statgrab = `./statgrab.pl`; + my($plugins_dir) = "plugins"; + opendir PLUGINS, $plugins_dir; + my(@plugins) = readdir PLUGINS; + foreach my $plugin (@plugins) { + push @data, `$plugins_dir/$plugin` if -x "$plugins_dir/$plugin" && -f "$plugins_dir/$plugin"; + } + # get some extra data my($date) = time; my($ip); $ip = inet_ntoa(scalar(gethostbyname(hostname())) || 'localhost') or $ip = 'localhost'; # add some extra data to the array - push(@statgrab, "packet.attributes.seq_no=$seq_no"); - push(@statgrab, "packet.attributes.machine_name=$fqdn"); - push(@statgrab, "packet.attributes.date=$date"); - push(@statgrab, "packet.attributes.type=data"); - push(@statgrab, "packet.attributes.ip=$ip"); + push(@data, "packet.attributes.seq_no=$seq_no"); + push(@data, "packet.attributes.machine_name=$fqdn"); + push(@data, "packet.attributes.date=$date"); + push(@data, "packet.attributes.type=data"); + push(@data, "packet.attributes.ip=$ip"); # turn the array into some nice XML my($xml) = &make_xml("", ""); @@ -283,7 +289,7 @@ sub send_udp_packet() { print $sock $xml or die "Could not send UDP packet: $!\n"; close($sock); $seq_no++; - print "-"; + print "-: $xml\n"; return; } @@ -388,13 +394,13 @@ sub write_pid() { #----------------------------------------------------------------------- # make_xml -# Turns an array of statgrab data into an XML string. +# Turns an array of plugins data into an XML string. #----------------------------------------------------------------------- sub make_xml() { my($curlevel, $curline) = @_; my($xmltemp) = ""; my($curtag) = ""; my($attributes) = ""; while(true) { - $curline = shift(@statgrab) if $curline eq ""; chomp $curline; + $curline = shift(@data) if $curline eq ""; chomp $curline; if($curline =~ /^$curlevel([^\.\s]+\.)/) { $curtag=$1; } @@ -407,7 +413,7 @@ sub make_xml() { else { $xmltemp .= &make_xml("$curlevel$curtag", $curline); } - my($nextline) = $statgrab[0]; chomp $nextline if defined $nextline; + my($nextline) = $data[0]; chomp $nextline if defined $nextline; $curtag =~ s/(.*)\./$1/; if(defined $nextline && $nextline =~ /^$curlevel$curtag\./) { $curline = "";