From 0d34a92fb342c2dbf8a6daa7d3aae9da89913247 Mon Sep 17 00:00:00 2001
From: Tomas Plesnik <plesnik@ics.muni.cz>
Date: Wed, 23 Jan 2013 00:41:56 +0100
Subject: [PATCH] vytvoreno inteligentni nacitani cest ke knihovnam a config
 souborum; doplnena knihovna WardenCommon.pm pro pouzivane funkce

---
 src/warden-server/bin/getClients.pl       |  49 +++------
 src/warden-server/bin/getStatus.pl        |  57 +++--------
 src/warden-server/bin/registerReceiver.pl | 114 +++++----------------
 src/warden-server/bin/registerSender.pl   | 108 +++++---------------
 src/warden-server/bin/unregisterClient.pl | 117 +++++-----------------
 src/warden-server/lib/Warden.pm           |  22 ++--
 src/warden-server/lib/WardenCommon.pm     |  13 ++-
 7 files changed, 132 insertions(+), 348 deletions(-)

diff --git a/src/warden-server/bin/getClients.pl b/src/warden-server/bin/getClients.pl
index 430e602..f2d5040 100755
--- a/src/warden-server/bin/getClients.pl
+++ b/src/warden-server/bin/getClients.pl
@@ -8,53 +8,31 @@
 
 use strict;
 use Getopt::Std;
-use File::Basename;
 use DBI;
 use DBD::mysql;
+use FindBin qw($RealBin $RealScript);
+use lib "$FindBin::RealBin/../lib";
+use WardenCommon;
 
 
 
 ################################################################################
-#				GLOBAL VARIABLES
+#				VARIABLES
 ################################################################################
 our $VERSION = "2.2";
-my $filename = basename($0);
+my $etc = "$FindBin::RealBin/../etc";
 
 
 
 ################################################################################
-#                               Functions
+#				FUNCTIONS
 ################################################################################
 sub usage {
-  print "Usage: $filename [without parameters]\n";
+  print "Usage: $RealScript [without parameters]\n";
   exit 1;
 }
 
 
-#-------------------------------------------------------------------------------
-# errMsg - print error message and die
-#-------------------------------------------------------------------------------
-sub errMsg
-{
-  my $msg = shift;
-  $msg = trim($msg);
-  print $msg . "\n";
-  exit 1;
-} # End of errMsg
-
-
-#-------------------------------------------------------------------------------
-# trim - remove whitespace from the start and end of the string
-#-------------------------------------------------------------------------------
-sub trim
-{
-  my $string = shift;
-  $string =~ s/^\s+//;
-  $string =~ s/\s+$//;
-  return $string;
-} # End of trim
-
-
 
 ################################################################################
 #                               MAIN
@@ -65,18 +43,14 @@ die usage unless getopts("h");
 my $help = $opt_h;
 
 # catch help param
-if ($help) {
-  usage;
-}
+if ($help) {usage}
 
 # superuser controle
 my $UID = $<;
-if ($UID != 0) {
-  die errMsg("You must be root for running this script!")
-}
+if ($UID != 0) {WardenCommon::errMsg("You must be root for running this script!")}
 
 # read config file
-my $conf_file = "/opt/warden-server/etc/warden-server.conf"; # path is updated by install.sh
+my $conf_file = "$etc/warden-server.conf";
 our $DB_NAME            = undef;
 our $DB_USER            = undef;
 our $DB_PASS            = undef;
@@ -88,7 +62,8 @@ unless (do $conf_file) {
 }
 
 # connect to DB
-our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1}) || die "Could not connect to database: $DBH->errstr";
+our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1})
+           || die "Could not connect to database: $DBH->errstr";
 
 # obtain data from DB
 my $sth = $DBH->prepare("SELECT * FROM clients ORDER BY client_id ASC;") or die "Cannot prepare statement: " . $DBH->errstr;
diff --git a/src/warden-server/bin/getStatus.pl b/src/warden-server/bin/getStatus.pl
index 2637a62..6561a34 100755
--- a/src/warden-server/bin/getStatus.pl
+++ b/src/warden-server/bin/getStatus.pl
@@ -8,54 +8,32 @@
 
 use strict;
 use Getopt::Std;
-use File::Basename;
 use DBI;
 use DBD::mysql;
 use Format::Human::Bytes;
+use FindBin qw($RealBin $RealScript);
+use lib "$FindBin::RealBin/../lib";
+use WardenCommon;
 
 
 
 ################################################################################
-#				GLOBAL VARIABLES
+#				VARIABLES
 ################################################################################
 our $VERSION = "2.2";
-my $filename = basename($0);
+my $etc = "$FindBin::RealBin/../etc";
 
 
 
 ################################################################################
-#                               Functions
+#                               FUNCTIONS
 ################################################################################
 sub usage {
-  print "Usage: $filename [without parameters]\n";
+  print "Usage: $RealScript [without parameters]\n";
   exit 1;
 }
 
 
-#-------------------------------------------------------------------------------
-# errMsg - print error message and die
-#-------------------------------------------------------------------------------
-sub errMsg
-{
-  my $msg = shift;
-  $msg = trim($msg);
-  print $msg . "\n";
-  exit 1;
-} # End of errMsg
-
-
-#-------------------------------------------------------------------------------
-# trim - remove whitespace from the start and end of the string
-#-------------------------------------------------------------------------------
-sub trim
-{
-  my $string = shift;
-  $string =~ s/^\s+//;
-  $string =~ s/\s+$//;
-  return $string;
-} # End of trim
-
-
 
 ################################################################################
 #                               MAIN
@@ -66,18 +44,14 @@ die usage unless getopts("h");
 my $help = $opt_h;
 
 # catch help param
-if ($help) {
-  usage;
-}
+if ($help) {usage}
 
 # superuser controle
 my $UID = $<;
-if ($UID != 0) {
-  die errMsg("You must be root for running this script!")
-}
+if ($UID != 0) {WardenCommon::errMsg("You must be root for running this script!")}
 
 # read config file
-my $conf_file = "/opt/warden-server/etc/warden-server.conf"; # path is updated by install.sh
+my $conf_file = "$etc/warden-server.conf";
 our $BASEDIR		= undef
 our $SYSLOG             = undef;
 our $SYSLOG_VERBOSE     = undef;
@@ -94,15 +68,16 @@ unless (do $conf_file) {
 }
 
 # connect to DB
-our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1}) || die "Could not connect to database: $DBH->errstr";
+our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1})
+           || die "Could not connect to database: $DBH->errstr";
 
 #-----------------------------------------------------------------------------
 # Warden server variables
-my $package_version 	= trim(`cat /opt/warden-server/etc/package_version`);
+my $package_version 	= WardenCommon::trim(`cat /opt/warden-server/etc/package_version`);
 my $version 		= substr($package_version, 14);
-my $hostname 		= trim(`hostname -f`);
-my $ip_address 		= trim(`hostname -i`);
-my $port		= trim(`netstat -pln | grep apache | cut -f 4 -d ":"`);
+my $hostname 		= WardenCommon::trim(`hostname -f`);
+my $ip_address 		= WardenCommon::trim(`hostname -i`);
+my $port		= WardenCommon::trim(`netstat -pln | grep apache | cut -f 4 -d ":"`);
 my ($syslog, $syslog_verbose);
 if ($SYSLOG == 1) {
   $syslog = "enabled";
diff --git a/src/warden-server/bin/registerReceiver.pl b/src/warden-server/bin/registerReceiver.pl
index 3c95297..43267f6 100755
--- a/src/warden-server/bin/registerReceiver.pl
+++ b/src/warden-server/bin/registerReceiver.pl
@@ -9,35 +9,37 @@
 use strict;
 use Getopt::Std;
 use Switch;
-use File::Basename;
 use DBI;
 use DBD::mysql;
 use DateTime;
 use Sys::Syslog qw(:DEFAULT setlogsock);
 Sys::Syslog::setlogsock('unix');
 use Carp;
+use FindBin qw($RealBin $RealScript);
+use lib "$FindBin::RealBin/../lib";
+use WardenCommon;
 
 
 
 ################################################################################
-#				GLOBAL VARIABLES
+#				VARIABLES
 ################################################################################
 our $VERSION = "2.2";
-my $filename = basename($0);
+my $etc = "$FindBin::RealBin/../etc";
 
 
 
 ################################################################################
-#                               Functions
+#                               FUNCTIONS
 ################################################################################
 sub usage {
-  print "Usage: $filename [-h -o -n <hostname> -r <requestor> -t <type> -i <ip_net_client>]\n";
+  print "Usage: $RealScript [-h -o -n <hostname> -r <requestor> -t <type> -i <ip_net_client>]\n";
   exit 1;
 }
 
 
 sub help {
-  print "$filename [-h -o -n <hostname> -r <requestor> -t <type> -i <ip_net_client>]\n";
+  print "$RealScript [-h -o -n <hostname> -r <requestor> -t <type> -i <ip_net_client>]\n";
   print "-h     print this text and exit\n";
   print "-n     hostname of receiver\n";
   print "-r     client registration requestor\n";
@@ -48,54 +50,6 @@ sub help {
 }
 
 
-#-------------------------------------------------------------------------------
-# errMsg - print error message and die
-#-------------------------------------------------------------------------------
-sub errMsg
-{
-  my $msg = shift;
-  $msg = trim($msg);
-  print $msg . "\n";
-  exit 1;
-} # End of errMsg
-
-
-#-------------------------------------------------------------------------------
-# trim - remove whitespace from the start and end of the string
-#-------------------------------------------------------------------------------
-sub trim
-{
-  my $string = shift;
-  $string =~ s/^\s+//;
-  $string =~ s/\s+$//;
-  return $string;
-} # End of trim
-
-
-#-------------------------------------------------------------------------------
-# sendMsg - sent message to syslog (SYS::Syslog)
-#-------------------------------------------------------------------------------
-sub sendMsg
-{
-  my $syslog		= shift;
-  my $syslog_verbose	= shift;
-  my $syslog_facility	= shift;
-  my $severity          = shift;
-  my $syslog_msg        = shift;
-  my $filename          = File::Basename::basename($0);
-
-  if ($syslog_verbose == 1 && ($severity eq "err" || $severity eq "debug")) {
-    $syslog_msg .= "\nStack info: " . Carp::longmess();
-  }
-
-  if ($syslog == 1 && defined $severity && defined $syslog_msg) {
-    Sys::Syslog::openlog($filename, "cons,pid", $syslog_facility);
-    Sys::Syslog::syslog("$severity", "$syslog_msg");
-    Sys::Syslog::closelog();
-  }
-} # End of sendMsg
-
-
 
 ################################################################################
 #                               MAIN
@@ -111,31 +65,27 @@ my $type		= $opt_t;
 my $ip_net_client       = $opt_i;
 my $help                = $opt_h;
 my $receive_own_events	= "f";
-
-if ($opt_o) {
-  $receive_own_events = "t";
-}
+if ($opt_o) {$receive_own_events = "t"}
 
 # catch help param
-if ($help) {
-  help;
-}
+if ($help) {help}
 
+# check validity of IP address (CIDR format)
 if ($ip_net_client !~ /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(\d|[1-2]\d|3[0-2]))$/) {
-    die "Enter correct IP address in CIDR format!";
+  WardenCommon::errMsg("Enter correct IP address in CIDR format!");
 }
 
 # superuser controle
 my $UID = $<;
-if ($UID != 0) {die errMsg("You must be root for running this script!")}
+if ($UID != 0) {WardenCommon::errMsg("You must be root for running this script!")}
 
 # check parameters definition
 switch () {
-  case {!defined $hostname} { print "ERROR: Parameter 'hostname' is not defined!\n"; exit 1; }
-  case {!defined $requestor} { print "ERROR: Parameter 'requestor' is not defined!\n"; exit 1; }
-  case {!defined $type} { print "ERROR: Parameter 'type' is not defined!\n"; exit 1; }
-  case {!defined $receive_own_events} { print "ERROR: Parameter 'receive_own_events' is not defined!\n"; exit 1; }
-  case {!defined $ip_net_client} { print "ERROR: Parameter 'ip_net_client' is not defined!\n"; exit 1; }
+  case {!defined $hostname} {WardenCommon::errMsg("Parameter 'hostname' is not defined!")}
+  case {!defined $requestor} {WardenCommon::errMsg("Parameter 'requestor' is not defined!")}
+  case {!defined $type} {WardenCommon::errMsg("Parameter 'type' is not defined!")}
+  case {!defined $receive_own_events} {WardenCommon::errMsg("Parameter 'receive_own_events' is not defined!")}
+  case {!defined $ip_net_client} {WardenCommon::errMsg("Parameter 'ip_net_client' is not defined!")}
 }
 
 # defined variables by script
@@ -144,9 +94,8 @@ my $registered              = DateTime->now;
 my $service                 = undef;
 my $description_tags        = undef;
 
-
 # read config file
-my $conf_file = "/opt/warden-server/etc/warden-server.conf"; # path is updated by install.sh
+my $conf_file = "$etc/warden-server.conf";
 our $SYSLOG             = undef;
 our $SYSLOG_VERBOSE     = undef;
 our $SYSLOG_FACILITY    = undef;
@@ -161,33 +110,24 @@ unless (do $conf_file) {
 }
 
 # connect to DB
-our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1}) || die "Could not connect to database: $DBH->errstr";
+our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1})
+           || die "Could not connect to database: $DBH->errstr";
 
 # check if receiver has been already registered or register it
 my $sth = $DBH->prepare("SELECT registered FROM clients WHERE hostname = ? AND client_type = ? AND type = ? AND ip_net_client = ? LIMIT 1;") or die "Cannot prepare statement: " . $DBH->errstr;
 $sth->execute($hostname, $client_type, $type, $ip_net_client) or die "Cannot execute statement: " . $sth->errstr;
 my $result = $sth->fetchrow();
-my $warden_server = trim(`hostname -f`);
+my $warden_server = WardenCommon::trim(`hostname -f`);
 if (defined $result) {
-  sendMsg($SYSLOG,
-          $SYSLOG_VERBOSE,
-          $SYSLOG_FACILITY,
-          "info",
-          "Attempt to re-register the receiver [hostname: '$hostname', type: '$type', cidr: '$ip_net_client']");
-  errMsg("Receiver has already been registered at $warden_server in '$result'");
+  WardenCommon::sendMsg($SYSLOG, $SYSLOG_VERBOSE, $SYSLOG_FACILITY, "err", "Attempt to re-register the receiver [hostname: '$hostname', type: '$type', cidr: '$ip_net_client']");
+  WardenCommon::errMsg("Receiver has already been registered at $warden_server in '$result'");
 } else {
   $sth = $DBH->prepare("INSERT INTO clients VALUES (?,?,?,?,?,?,?,?,?,?);") or die "Cannot prepare statement: " . $DBH->errstr;
   my $ret_val = $sth->execute(undef, $hostname, $registered, $requestor, $service, $client_type, $type, $receive_own_events, $description_tags, $ip_net_client) or die "Cannot execute statement: " . $sth->errstr;
   if ($ret_val == 1) {
-    sendMsg($SYSLOG,
-	    $SYSLOG_VERBOSE,
-	    $SYSLOG_FACILITY,
-            "info",
-            "New receiver [hostname: '$hostname', type: '$type', cidr: '$ip_net_client'] was registered");
-    print "Registration of receiver from $hostname was SUCCESSFUL!!!\n";
-    exit 0;
+    WardenCommon::sendMsg($SYSLOG, $SYSLOG_VERBOSE, $SYSLOG_FACILITY, "info", "New receiver [hostname: '$hostname', type: '$type', cidr: '$ip_net_client'] was registered");
+    WardenCommon::succMsg("Registration of receiver from $hostname was SUCCESSFUL!!!");
   } else {
-    print "Registration of receiver from $hostname FAILED!!!\n";
-    exit 1;
+    WardenCommon::errMsg("Registration of receiver from $hostname FAILED!!!");
   }
 }
diff --git a/src/warden-server/bin/registerSender.pl b/src/warden-server/bin/registerSender.pl
index 4097487..c09eb0e 100755
--- a/src/warden-server/bin/registerSender.pl
+++ b/src/warden-server/bin/registerSender.pl
@@ -9,35 +9,37 @@
 use strict;
 use Getopt::Std;
 use Switch;
-use File::Basename;
 use DBI;
 use DBD::mysql;
 use DateTime;
 use Sys::Syslog qw(:DEFAULT setlogsock);
 Sys::Syslog::setlogsock('unix');
 use Carp;
+use FindBin qw($RealBin $RealScript);
+use lib "$FindBin::RealBin/../lib";
+use WardenCommon;
 
 
 
 ################################################################################
-#				GLOBAL VARIABLES
+#				VARIABLES
 ################################################################################
 our $VERSION = "2.2";
-my $filename = basename($0);
+my $etc = "$FindBin::RealBin/../etc";
 
 
 
 ################################################################################
-#                               Functions
+#                               FUNCTIONS
 ################################################################################
 sub usage {
-  print "Usage: $filename [-h -n <hostname> -r <requestor> -s <service> -d <description_tags> -i <ip_net_client>]\n";
+  print "Usage: $RealScript [-h -n <hostname> -r <requestor> -s <service> -d <description_tags> -i <ip_net_client>]\n";
   exit 1;
 }
 
 
 sub help {
-  print "$filename [-h -n <hostname> -r <requestor> -s <service> -d <description_tags> -i <ip_net_client>]\n";
+  print "$RealScript [-h -n <hostname> -r <requestor> -s <service> -d <description_tags> -i <ip_net_client>]\n";
   print "-h 	print this text and exit\n";
   print "-n 	hostname of sender\n";
   print "-r 	client registration requestor\n";
@@ -48,54 +50,6 @@ sub help {
 }
 
 
-#-------------------------------------------------------------------------------
-# errMsg - print error message and die
-#-------------------------------------------------------------------------------
-sub errMsg
-{
-  my $msg = shift;
-  $msg = trim($msg);
-  print $msg . "\n";
-  exit 1;
-} # End of errMsg
-
-
-#-------------------------------------------------------------------------------
-# trim - remove whitespace from the start and end of the string
-#-------------------------------------------------------------------------------
-sub trim
-{
-  my $string = shift;
-  $string =~ s/^\s+//;
-  $string =~ s/\s+$//;
-  return $string;
-} # End of trim
-
-
-#-------------------------------------------------------------------------------
-# sendMsg - sent message to syslog (SYS::Syslog)
-#-------------------------------------------------------------------------------
-sub sendMsg
-{
-  my $syslog		= shift;
-  my $syslog_verbose	= shift;
-  my $syslog_facility	= shift;
-  my $severity          = shift;
-  my $syslog_msg        = shift;
-  my $filename          = File::Basename::basename($0);
-
-  if ($syslog_verbose == 1 && ($severity eq "err" || $severity eq "debug")) {
-    $syslog_msg .= "\nStack info: " . Carp::longmess();
-  }
-
-  if ($syslog == 1 && defined $severity && defined $syslog_msg) {
-    Sys::Syslog::openlog($filename, "cons,pid", $syslog_facility);
-    Sys::Syslog::syslog("$severity", "$syslog_msg");
-    Sys::Syslog::closelog();
-  }
-} # End of sendMsg
-
-
 
 ################################################################################
 #                               MAIN
@@ -113,25 +67,24 @@ my $ip_net_client	= $opt_i;
 my $help 		= $opt_h;
 
 # catch help param
-if ($help) {
-  help;
-}
+if ($help) {help}
 
+# check validity of IP address (CIDR format)
 if ($ip_net_client !~ /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(\d|[1-2]\d|3[0-2]))$/) {
-    die errMsg("Enter correct IP in CIDR format!");
+  WardenCommon::errMsg("Enter correct IP in CIDR format!");
 }
 
 # superuser controle
 my $UID = $<;
-if ($UID != 0) {die errMsg("You must be root for running this script!")}
+if ($UID != 0) {WardenCommon::errMsg("You must be root for running this script!")}
 
 # check parameters definition
 switch () {
-  case {!defined $hostname} { print "ERROR: Parameter 'hostname' is not defined!\n"; exit 1; }
-  case {!defined $requestor} { print "ERROR: Parameter 'requestor' is not defined!\n"; exit 1; }
-  case {!defined $service} { print "ERROR: Parameter 'service' is not defined!\n"; exit 1; }
-  case {!defined $description_tags} { print "ERROR: Parameter 'description_tags' is not defined!\n"; exit 1; }
-  case {!defined $ip_net_client} { print "ERROR: Parameter 'ip_net_client' is not defined!\n"; exit 1; }
+  case {!defined $hostname} {WardenCommon::errMsg("Parameter 'hostname' is not defined!")}
+  case {!defined $requestor} {WardenCommon::errMsg("Parameter 'requestor' is not defined!")}
+  case {!defined $service} {WardenCommon::errMsg("Parameter 'service' is not defined!")}
+  case {!defined $description_tags} {WardenCommon::errMsg("Parameter 'description_tags' is not defined!")}
+  case {!defined $ip_net_client} {WardenCommon::errMsg("Parameter 'ip_net_client' is not defined!")}
 }
 
 # defined variables by method
@@ -141,7 +94,7 @@ my $type                    = undef;
 my $receive_own_events      = undef;
 
 # read config file
-my $conf_file = "/opt/warden-server/etc/warden-server.conf"; # path is updated by install.sh
+my $conf_file = "$etc/warden-server.conf";
 our $SYSLOG             = undef;
 our $SYSLOG_VERBOSE     = undef;
 our $SYSLOG_FACILITY    = undef;
@@ -156,33 +109,24 @@ unless (do $conf_file) {
 }
 
 # connect to DB
-our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1}) || die "Could not connect to database: $DBH->errstr";
+our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1})
+           || die "Could not connect to database: $DBH->errstr";
 
 # check if receiver has been already registered or register it
 my $sth = $DBH->prepare("SELECT registered FROM clients WHERE hostname = ? AND service = ? AND client_type = ? AND ip_net_client = ? LIMIT 1;") or die "Cannot prepare statement: " . $DBH->errstr;
 $sth->execute($hostname, $service, $client_type, $ip_net_client) or die "Cannot execute statement: " . $sth->errstr;
 my $result = $sth->fetchrow();
-my $warden_server = trim(`hostname -f`);
+my $warden_server = WardenCommon::trim(`hostname -f`);
 if (defined $result) {
-  sendMsg($SYSLOG,
-          $SYSLOG_VERBOSE,
-          $SYSLOG_FACILITY,
-          "info",
-          "Attempt to re-register the sender [hostname: '$hostname', service: '$service', cidr: '$ip_net_client']");
-  errMsg("Sender has already been registered at $warden_server in '$result'");
+  WardenCommon::sendMsg($SYSLOG, $SYSLOG_VERBOSE, $SYSLOG_FACILITY, "err", "Attempt to re-register the sender [hostname: '$hostname', service: '$service', cidr: '$ip_net_client']");
+  WardenCommon::errMsg("Sender has already been registered at $warden_server in '$result'");
 } else {
   $sth = $DBH->prepare("INSERT INTO clients VALUES (?,?,?,?,?,?,?,?,?,?);") or die "Cannot prepare statement: " . $DBH->errstr;
   my $ret_val = $sth->execute(undef, $hostname, $registered, $requestor, $service, $client_type, $type, $receive_own_events, $description_tags, $ip_net_client) or die "Cannot execute statement: " . $sth->errstr;
   if ($ret_val == 1) {
-    sendMsg($SYSLOG,
-	    $SYSLOG_VERBOSE,
-	    $SYSLOG_FACILITY,
-            "info",
-            "New sender [hostname: '$hostname', service: '$service', cidr: '$ip_net_client'] was registered");
-    print "Registration of sender from $hostname was SUCCESSFUL!!!\n";
-    exit 0;
+    WardenCommon::sendMsg($SYSLOG, $SYSLOG_VERBOSE, $SYSLOG_FACILITY, "info", "New sender [hostname: '$hostname', service: '$service', cidr: '$ip_net_client'] was registered");
+    WardenCommon::succMsg("Registration of sender from $hostname was SUCCESSFUL!!!");
   } else {
-    print "Registration of sender from $hostname FAILED!!!\n";
-    exit 1;
+    WardenCommon::errMsg("Registration of sender from $hostname FAILED!!!");
   }
 }
diff --git a/src/warden-server/bin/unregisterClient.pl b/src/warden-server/bin/unregisterClient.pl
index fb09d44..04c6edf 100755
--- a/src/warden-server/bin/unregisterClient.pl
+++ b/src/warden-server/bin/unregisterClient.pl
@@ -9,92 +9,47 @@
 use strict;
 use Getopt::Std;
 use Switch;
-use File::Basename;
 use DBI;
 use DBD::mysql;
 use DateTime;
 use Sys::Syslog qw(:DEFAULT setlogsock);
 Sys::Syslog::setlogsock('unix');
 use Carp;
+use FindBin qw($RealBin $RealScript);
+use lib "$FindBin::RealBin/../lib";
+use WardenCommon;
 
 
 
 ################################################################################
-#				GLOBAL VARIABLES
+#				VARIABLES
 ################################################################################
 our $VERSION = "2.2";
-my $filename = basename($0);
+my $etc = "$FindBin::RealBin/../etc";
 
 
 
 ################################################################################
-#                               Functions
+#                               FUNCTIONS
 ################################################################################
 sub usage {
-  print "Usage: $filename [-h -i <client_id>]\n";
+  print "Usage: $RealScript [-h -i <client_id>]\n";
   exit 1;
 }
 
+
 sub help {
-  print "$filename [-h -i <client_id>]\n";
+  print "$RealScript [-h -i <client_id>]\n";
   print "-h     print this text and exit\n";
   print "-i     client_id for unregistration\n";
   exit 0;
 }
 
 
-#-------------------------------------------------------------------------------
-# errMsg - print error message and die
-#-------------------------------------------------------------------------------
-sub errMsg
-{
-  my $msg = shift;
-  $msg = trim($msg);
-  print $msg . "\n";
-  exit 1;
-} # End of errMsg
-
-
-#-------------------------------------------------------------------------------
-# trim - remove whitespace from the start and end of the string
-#-------------------------------------------------------------------------------
-sub trim
-{
-  my $string = shift;
-  $string =~ s/^\s+//;
-  $string =~ s/\s+$//;
-  return $string;
-} # End of trim
-
-
-#-------------------------------------------------------------------------------
-# sendMsg - sent message to syslog (SYS::Syslog)
-#-------------------------------------------------------------------------------
-sub sendMsg
-{
-  my $syslog		= shift;
-  my $syslog_verbose	= shift;
-  my $syslog_facility	= shift;
-  my $severity          = shift;
-  my $syslog_msg        = shift;
-  my $filename          = File::Basename::basename($0);
-
-  if ($syslog_verbose == 1 && ($severity eq "err" || $severity eq "debug")) {
-    $syslog_msg .= "\nStack info: " . Carp::longmess();
-  }
-
-  if ($syslog == 1 && defined $severity && defined $syslog_msg) {
-    Sys::Syslog::openlog($filename, "cons,pid", $syslog_facility);
-    Sys::Syslog::syslog("$severity", "$syslog_msg");
-    Sys::Syslog::closelog();
-  }
-} # End of sendMsg
-
-
 
-#-------------------------------------------------------------------------------
+################################################################################
 #                               MAIN
-#-------------------------------------------------------------------------------
+################################################################################
 our ($opt_h, $opt_i);
 
 if ($#ARGV == -1) {usage}
@@ -104,22 +59,17 @@ my $client_id	= $opt_i;
 my $help        = $opt_h;
 
 # catch help param
-if ($help) {
-	  help;
-}
+if ($help) {help}
 
 # superuser controle
 my $UID = $<;
-if ($UID != 0) {die errMsg("You must be root for running this script!")}
+if ($UID != 0) {WardenCommon::errMsg("You must be root for running this script!")}
 
 # check parameters definition
-if (!defined $client_id) {
-  print "ERROR: Parameter 'client_id' is not defined!\n";
-  exit 1;
-}
+if (!defined $client_id) {WardenCommon::errMsg("Parameter 'client_id' is not defined!")}
 
 # read config file
-my $conf_file = "/opt/warden-server/etc/warden-server.conf"; # path is updated by install.sh
+my $conf_file = "$etc/warden-server.conf";
 our $SYSLOG             = undef;
 our $SYSLOG_VERBOSE     = undef;
 our $SYSLOG_FACILITY    = undef;
@@ -134,22 +84,19 @@ unless (do $conf_file) {
 }
 
 # connect to DB
-our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1}) || die "Could not connect to database: $DBH->errstr";
+our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1})
+           || die "Could not connect to database: $DBH->errstr";
 
 # check if receiver has been already registered
 my $sth = $DBH->prepare("SELECT client_id, hostname, service, client_type, type FROM clients WHERE client_id = ? LIMIT 1;") or die "Cannot prepare statement: " . $DBH->errstr;
 $sth->execute($client_id) or die "Cannot execute statement: " . $sth->errstr;
 my ($id, $hostname, $service, $client_type, $type) = $sth->fetchrow();
-my $warden_server = trim(`hostname -f`);
+my $warden_server = WardenCommon::trim(`hostname -f`);
 
 # delete registered client
 if (!defined $id) {
-  sendMsg($SYSLOG,
-          $SYSLOG_VERBOSE,
-          $SYSLOG_FACILITY,
-          "err",
-          "Attempt to delete unregister client (client_id: #$client_id)");
-  errMsg("Client (#$client_id) is not registered at $warden_server");
+  WardenCommon::sendMsg($SYSLOG, $SYSLOG_VERBOSE, $SYSLOG_FACILITY, "err", "Attempt to delete unregister client (client_id: #$client_id)");
+  WardenCommon::errMsg("Client (#$client_id) is not registered at $warden_server");
 } else {
   if ($client_type eq 's') {
     $sth = $DBH->prepare("DELETE FROM clients WHERE client_id = ?;") or die "Cannot prepare statement: " . $DBH->errstr;
@@ -157,31 +104,19 @@ if (!defined $id) {
     if ($ret_val == 1) {
       $sth = $DBH->prepare("UPDATE events SET valid = 'f' where hostname = ? AND service = ?;") or die "Cannot prepare statement: " . $DBH->errstr;
       $sth->execute($hostname, $service) or die "Cannot execute statement: " . $sth->errstr;
-      sendMsg($SYSLOG,
-              $SYSLOG_VERBOSE,
-              $SYSLOG_FACILITY,
-              "info",
-              "Sender '$hostname' [client_id: '$client_id', service: '$service'] was deleted and its data were invalidated from $warden_server");
-      print "Unregistration of sender client (client_id: #$client_id) was SUCCESSFUL!!!\n";
-      exit 0;
+      WardenCommon::sendMsg($SYSLOG, $SYSLOG_VERBOSE, $SYSLOG_FACILITY, "info", "Sender '$hostname' [client_id: '$client_id', service: '$service'] was deleted and its data were invalidated from $warden_server");
+      WardenCommon::succMsg("Unregistration of sender client (client_id: #$client_id) was SUCCESSFUL!!!");
     } else {
-      print "Unregistration of sender client (client_id: #$client_id) FAILED!!!\n";
-      exit 1;
+      WardenCommon::errMsg("Unregistration of sender client (client_id: #$client_id) FAILED!!!");
     }
   } else {
     $sth = $DBH->prepare("DELETE FROM clients WHERE client_id = ?;") or die "Cannot prepare statement: " . $DBH->errstr;
     my $ret_val = $sth->execute($client_id) or die "Cannot execute statement: " . $sth->errstr;
     if ($ret_val == 1) {
-      sendMsg($SYSLOG,
-              $SYSLOG_VERBOSE,
-              $SYSLOG_FACILITY,
-              "info",
-              "Receiver '$hostname' [client_id: '$client_id', type: '$type'] was deleted from $warden_server");
-      print "Unregistration of receiver client (client_id: #$client_id) was SUCCESSFUL!!!\n";
-      exit 0;
+      WardenCommon::sendMsg($SYSLOG, $SYSLOG_VERBOSE, $SYSLOG_FACILITY, "info", "Receiver '$hostname' [client_id: '$client_id', type: '$type'] was deleted from $warden_server");
+      WardenCommon::succMsg("Unregistration of receiver client (client_id: #$client_id) was SUCCESSFUL!!!");
     } else {
-      print "Unregistration of receiver client (client_id: #$client_id) FAILED!!!\n";
-      exit 1;
+      WardenCommon::errMsg("Unregistration of receiver client (client_id: #$client_id) FAILED!!!");
     }
   }
 }
diff --git a/src/warden-server/lib/Warden.pm b/src/warden-server/lib/Warden.pm
index 6ac8aec..1aa8a75 100755
--- a/src/warden-server/lib/Warden.pm
+++ b/src/warden-server/lib/Warden.pm
@@ -13,22 +13,25 @@ use DBI;
 use DBD::mysql;
 use Sys::Syslog qw(:DEFAULT setlogsock);
 Sys::Syslog::setlogsock('unix');
-use File::Basename;
 use Net::CIDR::Lite;
 use DateTime;
 use MIME::Base64;
 use Crypt::X509;
 use SOAP::Lite;
 use Carp;
+use FindBin qw($RealBin $RealScript);
+use lib "$FindBin::RealBin/../lib";
+use WardenCommon;
 
 our $VERSION = "2.2";
+my $etc = "$FindBin::RealBin/../etc";
+
 
 
 ################################################################################
 #			READING OF CONFIGURATION VARIABLES
 ################################################################################
-
-my $conf_file = "/opt/warden-server/etc/warden-server.conf"; # path is updated by install.sh
+my $conf_file = "$etc/warden-server.conf";
 our $SYSLOG		= undef;
 our $SYSLOG_VERBOSE	= undef;
 our $SYSLOG_FACILITY	= undef;
@@ -47,11 +50,12 @@ unless (do $conf_file) {
 }
 
 
+
 ################################################################################
 #				VARIABLES
 ################################################################################
-
-our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1}) || die "Could not connect to database: $DBH->errstr";
+our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $DB_PASS, {RaiseError => 1, mysql_auto_reconnect => 1})
+           || die "Could not connect to database: $DBH->errstr";
 
 
 ################################################################################
@@ -68,7 +72,7 @@ sub sendMsg
   my $severity		= shift;
   my $syslog_msg 	= shift;
   my $soap_msg		= shift;
-  my $filename		= File::Basename::basename($0);
+  my $filename		= $RealScript;
 
   if ($SYSLOG_VERBOSE == 1 && ($severity eq "err" || $severity eq "debug")) {
     $syslog_msg .= "\nStack info: " . Carp::longmess();
@@ -80,8 +84,7 @@ sub sendMsg
     Sys::Syslog::closelog();
   }
 
-  if (defined $soap_msg) {
-    die SOAP::Fault->faultstring($soap_msg);
+  if (defined $soap_msg) {die SOAP::Fault->faultstring($soap_msg)};
   }
 } # End of sendMsg
 
@@ -150,7 +153,7 @@ sub authorizeClient
   my $correct_ip_source = 0;
   my %ret;
   while(($client_id, $an, $cidr, $receive_own)  = $sth->fetchrow()) {
-    my $cidr_list = Net::CIDR::Lite-> new -> add($cidr);
+    my $cidr_list = Net::CIDR::Lite->new->add($cidr);
 
     $ret{'client_id'}	= $client_id;
     $ret{'dns'}		= $an;
@@ -183,6 +186,7 @@ sub authorizeClient
 } # END of authorizeClient
 
 
+
 ################################################################################
 # 				SOAP Functions
 ################################################################################
diff --git a/src/warden-server/lib/WardenCommon.pm b/src/warden-server/lib/WardenCommon.pm
index 9b7cd98..5cf1a6f 100755
--- a/src/warden-server/lib/WardenCommon.pm
+++ b/src/warden-server/lib/WardenCommon.pm
@@ -16,9 +16,20 @@ use Carp;
 
 our $VERSION = "2.2";
 
+#-------------------------------------------------------------------------------
+# succMsg - print message and exit seccessfully
+#-------------------------------------------------------------------------------
+sub succMsg
+{
+  my $msg = shift;
+  $msg = trim($msg);
+  print $msg . "\n";
+  exit 0;
+} # End of succMsg
+
 
 #-------------------------------------------------------------------------------
-# errMsg - print error message and die
+# errMsg - print error message and exit unsuccessfully
 #-------------------------------------------------------------------------------
 sub errMsg
 {
-- 
GitLab