diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index e6f0d97521..acd8883682 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -39,6 +39,14 @@ BEGIN { use File::Copy; use Scalar::Util qw(looks_like_number); + use File::Basename; + + BEGIN { + eval { + require MIME::Base64; + }; + } + BEGIN { push @INC, '/usr/lib/perl5'; } ################################################################################ @@ -3670,6 +3678,11 @@ sub write_module_xml ($@) { return; } + if ($module->{'func'} == \&module_logger) { + $Xml .= $data[0]; + return + } + # Critical section $Sem->down () if (defined ($Sem)); @@ -3872,14 +3885,14 @@ sub module_plugin ($) { ################################################################################ sub module_logger ($) { my $module = shift; - + my $status = grep_logs( $module->{'name'}, $module->{'params'}, $module->{'filter'} ); - return; + return $status; } my $encode_sub = defined(&MIME::Base64::encode_base64) ? \&MIME::Base64::encode_base64 : sub { @@ -3962,9 +3975,9 @@ sub grep_logs { return if load_idx(\$idx_pos, \$idx_ino, \$idx_file, \$idx_size) == 1; my @data = parse_log(\$idx_pos, \$idx_ino, \$idx_file, \$log_file, \$module_name, \$reg_exp, \$idx_size); - print_log (@data); - - return; + my $output = create_log(@data); + + return $output; } # Start the function definition @@ -4076,7 +4089,7 @@ sub grep_logs { return @data; } - sub print_log (@) { + sub create_log (@) { my (@data, $module_name) = @_; # No data @@ -4090,10 +4103,10 @@ sub grep_logs { $output .= "base64\n"; $output .= ""; + $output .= "]]>\n"; $output .= "\n"; - print stdout $output; + return $output; } }