diff --git a/src/warden-client/lib/WardenClientCommon.pm b/src/warden-client/lib/WardenClientCommon.pm index 6931b6fd0d03990f46482ec60883241b2931604d..8c4ee1a097ae53a1e3626eed46d6c291fb5dc56e 100755 --- a/src/warden-client/lib/WardenClientCommon.pm +++ b/src/warden-client/lib/WardenClientCommon.pm @@ -27,26 +27,26 @@ sub errMsg my $type = shift; defined $type or $type = "err"; # default type is err. Other: warn - # is this error report and is Verbose logging mode enabled? - if (($type eq "err") && ($WardenClientConf::LOG_VERBOSE)) { # user wants to log debug information + # check verbose logging + if (($type eq "err") && ($WardenCommon::LOG_VERBOSE)) { $msg .= "\nStack info: " . Carp::longmess(); } - # log into STDERR? - if ($WardenClientConf::LOG_STDERR) { + # check logging into STDERR + if ($WardenCommon::LOG_STDERR) { print STDERR $msg . "\n"; } - # log into Syslog? - if ($WardenClientConf::LOG_SYSLOG) { - openlog("Warden-client:", "pid", "$WardenClientConf::LOG_SYSLOG_FACILITY"); - syslog("$type|$WardenClientConf::LOG_SYSLOG_FACILITY", $msg . "\n"); + # check logging into Syslog + if ($WardenCommon::SYSLOG) { + openlog("Warden-client:", "pid", "$WardenCommon::SYSLOG_FACILITY"); + syslog("$type|$WardenCommon::SYSLOG_FACILITY", $msg . "\n"); closelog(); } - if ($type eq 'warn') { # case of 'warn' + if ($type eq 'warn') { return 1; - } else { # case of 'err' + } else { return; } @@ -59,67 +59,69 @@ sub errMsg sub c2s { my $uri = shift; - my $ssl_key_file = shift; - my $ssl_cert_file = shift; - my $ssl_ca_file = shift; + my $ssl_key = shift; + my $ssl_cert = shift; + my $ssl_ca_cert = shift; my $method = shift; my $data = shift; my $client; my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/; + + # creating SOAP:: Transport::HTTP:Client object eval { $client = SOAP::Transport::HTTP::Client->new(); - } or return errMsg('Unknown error in c2s() when creating socket, SOAP::Transport::HTTP::Client->new(), ' . $@); + } or return errMsg("Error in function 'c2s()' when creating SOAP::Transport::HTTP::Client object: " . $@); - eval {$client->timeout($WardenClientConf::CONNECTION_TIMEOUT);} - or return errMsg('Unknown error in c2s() when setting socket timeout, ' . $@); + # setting of connection timeout + eval {$client->timeout($WardenCommon::CONNECTION_TIMEOUT);} + or return errMsg("Error in function 'c2s()' when setting connection timeout: " . $@); + # setting of SSL options eval { $client->ssl_opts(verify_hostname => 1, SSL_use_cert => 1, SSL_verify_mode => 0x03, - SSL_key_file => $ssl_key_file, - SSL_cert_file => $ssl_cert_file, - SSL_ca_file => $ssl_ca_file); + SSL_key_file => $ssl_key, + SSL_cert_file => $ssl_cert, + SSL_ca_file => $ssl_ca_cert); return 1; # fix of eval triggering 'or' statement - } or return errMsg('Unknown error in c2s() when setting socket SSL options, ' . $@); + } or return errMsg("Ă‹rror in function 'c2s()' when setting SSL options: " . $@); - # setting of URI and serialize SOAP envelope and data object - + # setting of service URI my $soap; eval { $soap = SOAP::Lite->uri($service)->proxy($uri); - } or return errMsg('Unknown error in c2s() when serializing SOAP object, ' . $@); + } or return errMsg("Error in function 'c2s()' when setting service URI: " . $@); + # serialize SOAP envelope or SOAP envelope and data object my $envelope; if (!defined $data) { eval { $envelope = $soap->serializer->envelope(method => $method); - } or return errMsg('Unknown error in c2s() when setting enevelope, ' . $@); + } or return errMsg("Error in function 'c2s()' when serializing envelope: " . $@); } else { eval { $envelope = $soap->serializer->envelope(method => $method, $data); - } or return errMsg('Unknown error in c2s() when setting envelope, ' . $@); + } or return errMsg("Error in function 'c2s()' when serializing envelope and data: " . $@); } - # setting of TCP URI and send serialized SOAP envelope and data + # setting of complete HTTPs URI and send serialized SOAP envelope and data my $server_uri = "https://$server:$port/$service"; my $result; eval { $result = $client->send_receive(envelope => $envelope, endpoint => $server_uri); - } or return errMsg('Unknown error in c2s() sending SOAP data, ' . $@); + } or return errMsg("Error in function 'c2s()' when sending SOAP envelope and data: " . $@); # check server response if (!defined $result) { - errMsg("Server returned empty response. Problem with used SSL ceritificates or Warden server at $server:$port is down."); + errMsg("Server returned empty response. Problem with used SSL ceritificate and key or Warden server at $server:$port is down."); } else { - # deserialized response from server -> create SOAP envelope and data object - + # deserialized response from server to SOAP data object my $response; - eval { $response = $soap->deserializer->deserialize($result); - } or return errMsg('Unknown error in SOAP data deserialization. Received data: ' . $result . ', ' . $@); + } or return errMsg("Error in deserialization of server response: " . $@ . " (Received response: " . $result . ")"); # check SOAP fault status $response->fault ? return errMsg("Server sent error message:: " . $response->faultstring) : return $response; } @@ -188,8 +190,8 @@ sub loadConf our $MAX_RCV_EVENTS_LIMIT = undef; our $CONNECTION_TIMEOUT = undef; our $LOG_STDERR = undef; + our $LOG_VERBOSE = undef; our $SYSLOG = undef; - our $SYSLOG_VERBOSE = undef; our $SYSLOG_FACILITY = undef; unless (do $conf_file) { die("Errors in config file '$conf_file': $@") if $@;