diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl index 6d3cf7299..d88a5b4ca 100644 --- a/config/cfgroot/ids-functions.pl +++ b/config/cfgroot/ids-functions.pl @@ -189,10 +189,36 @@ sub log_error ($) { # Remove any newline. chomp($error); + # Call private function to log the error message to syslog. + &_log_to_syslog($error); + # Call private function to write/store the error message in the storederrorfile. &_store_error_message($error); } +# +## Function to log a given error message to the kernel syslog. +# +sub _log_to_syslog ($) { + my ($message) = @_; + + # Load perl module to talk to the kernel syslog. + use Sys::Syslog qw(:DEFAULT setlogsock); + + # The syslog function works best with an array based input, + # so generate one before passing the message details to syslog. + my @syslog = ("ERR", " $message"); + + # Establish the connection to the syslog service. + openlog('oinkmaster', 'cons,pid', 'user'); + + # Send the log message. + syslog(@syslog); + + # Close the log handle. + closelog(); +} + # ## Private function to write a given error message to the storederror file. #