Skip to content
Snippets Groups Projects
Commit ebb5f3ce authored by Tomáš Plesník's avatar Tomáš Plesník
Browse files

uprava funkce errMsg: zmena nazvu promennych podle warden-client.conf, uprava...

uprava funkce errMsg: zmena nazvu promennych podle warden-client.conf, uprava komentaru; zmena funkce c2s: zmena nazvu SSL promennych, doplneni a zpresneni komentaru, doplneni a zpresneni chybovych hlasek; uprava funkce loadConf: prejmenovani promenne SYSLOG_VERBOSE na LOG_VERBOSE
parent 874f319f
No related branches found
No related tags found
No related merge requests found
......@@ -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 $@;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment