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 ...@@ -27,26 +27,26 @@ sub errMsg
my $type = shift; my $type = shift;
defined $type or $type = "err"; # default type is err. Other: warn defined $type or $type = "err"; # default type is err. Other: warn
# is this error report and is Verbose logging mode enabled? # check verbose logging
if (($type eq "err") && ($WardenClientConf::LOG_VERBOSE)) { # user wants to log debug information if (($type eq "err") && ($WardenCommon::LOG_VERBOSE)) {
$msg .= "\nStack info: " . Carp::longmess(); $msg .= "\nStack info: " . Carp::longmess();
} }
# log into STDERR? # check logging into STDERR
if ($WardenClientConf::LOG_STDERR) { if ($WardenCommon::LOG_STDERR) {
print STDERR $msg . "\n"; print STDERR $msg . "\n";
} }
# log into Syslog? # check logging into Syslog
if ($WardenClientConf::LOG_SYSLOG) { if ($WardenCommon::SYSLOG) {
openlog("Warden-client:", "pid", "$WardenClientConf::LOG_SYSLOG_FACILITY"); openlog("Warden-client:", "pid", "$WardenCommon::SYSLOG_FACILITY");
syslog("$type|$WardenClientConf::LOG_SYSLOG_FACILITY", $msg . "\n"); syslog("$type|$WardenCommon::SYSLOG_FACILITY", $msg . "\n");
closelog(); closelog();
} }
if ($type eq 'warn') { # case of 'warn' if ($type eq 'warn') {
return 1; return 1;
} else { # case of 'err' } else {
return; return;
} }
...@@ -59,67 +59,69 @@ sub errMsg ...@@ -59,67 +59,69 @@ sub errMsg
sub c2s sub c2s
{ {
my $uri = shift; my $uri = shift;
my $ssl_key_file = shift; my $ssl_key = shift;
my $ssl_cert_file = shift; my $ssl_cert = shift;
my $ssl_ca_file = shift; my $ssl_ca_cert = shift;
my $method = shift; my $method = shift;
my $data = shift; my $data = shift;
my $client; my $client;
my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/; my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/;
# creating SOAP:: Transport::HTTP:Client object
eval { eval {
$client = SOAP::Transport::HTTP::Client->new(); $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);} # setting of connection timeout
or return errMsg('Unknown error in c2s() when setting socket timeout, ' . $@); eval {$client->timeout($WardenCommon::CONNECTION_TIMEOUT);}
or return errMsg("Error in function 'c2s()' when setting connection timeout: " . $@);
# setting of SSL options
eval { eval {
$client->ssl_opts(verify_hostname => 1, $client->ssl_opts(verify_hostname => 1,
SSL_use_cert => 1, SSL_use_cert => 1,
SSL_verify_mode => 0x03, SSL_verify_mode => 0x03,
SSL_key_file => $ssl_key_file, SSL_key_file => $ssl_key,
SSL_cert_file => $ssl_cert_file, SSL_cert_file => $ssl_cert,
SSL_ca_file => $ssl_ca_file); SSL_ca_file => $ssl_ca_cert);
return 1; # fix of eval triggering 'or' statement 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; my $soap;
eval { eval {
$soap = SOAP::Lite->uri($service)->proxy($uri); $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; my $envelope;
if (!defined $data) { if (!defined $data) {
eval { eval {
$envelope = $soap->serializer->envelope(method => $method); $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 { } else {
eval { eval {
$envelope = $soap->serializer->envelope(method => $method, $data); $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 $server_uri = "https://$server:$port/$service";
my $result; my $result;
eval { eval {
$result = $client->send_receive(envelope => $envelope, endpoint => $server_uri); $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 # check server response
if (!defined $result) { 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 { } else {
# deserialized response from server -> create SOAP envelope and data object # deserialized response from server to SOAP data object
my $response; my $response;
eval { eval {
$response = $soap->deserializer->deserialize($result); $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 # check SOAP fault status
$response->fault ? return errMsg("Server sent error message:: " . $response->faultstring) : return $response; $response->fault ? return errMsg("Server sent error message:: " . $response->faultstring) : return $response;
} }
...@@ -188,8 +190,8 @@ sub loadConf ...@@ -188,8 +190,8 @@ sub loadConf
our $MAX_RCV_EVENTS_LIMIT = undef; our $MAX_RCV_EVENTS_LIMIT = undef;
our $CONNECTION_TIMEOUT = undef; our $CONNECTION_TIMEOUT = undef;
our $LOG_STDERR = undef; our $LOG_STDERR = undef;
our $LOG_VERBOSE = undef;
our $SYSLOG = undef; our $SYSLOG = undef;
our $SYSLOG_VERBOSE = undef;
our $SYSLOG_FACILITY = undef; our $SYSLOG_FACILITY = undef;
unless (do $conf_file) { unless (do $conf_file) {
die("Errors in config file '$conf_file': $@") if $@; 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