From 5240a80987920b1b807e6609a6c10fb666235e21 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sat, 11 Aug 2018 22:10:29 +0200 Subject: [PATCH] ids-functions.pl: Add function to call suricatactrl binary Signed-off-by: Stefan Schantl --- config/cfgroot/ids-functions.pl | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl index ebbf61585e..761b39e78d 100644 --- a/config/cfgroot/ids-functions.pl +++ b/config/cfgroot/ids-functions.pl @@ -44,6 +44,12 @@ our $rulesetsourcesfile = "$settingsdir/ruleset-sources"; # The pidfile of the IDS. our $idspidfile = "/var/run/suricata.pid"; +# Location of suricatactrl. +my $suricatactrl = "/usr/local/bin/suricatactrl"; + +# Array with allowed commands of suricatactrl. +my @suricatactrl_cmds = ( 'start', 'stop', 'restart', 'reload' ); + # ## Function for checking if at least 300MB of free disk space are available ## on the "/var" partition. @@ -321,4 +327,29 @@ sub ids_is_running () { return; } +# +## Function to call suricatactrl binary with a given command. +# +sub call_suricatactrl ($) { + # Get called option. + my ($option) = @_; + + # Loop through the array of supported commands and check if + # the given one is part of it. + foreach my $cmd (@suricatactrl_cmds) { + # Skip current command unless the given one has been found. + next unless($cmd eq $option); + + # Call the suricatactrl binary and pass the requrested + # option to it. + system("$suricatactrl $option &>/dev/null"); + + # Return "1" - True. + return 1; + } + + # Command not found - return nothing. + return; +} + 1; -- 2.47.3