From e2a883274762cadaca25bcb2dab7d324683c1071 Mon Sep 17 00:00:00 2001 From: Jan Soukal <soukal@ics.muni.cz> Date: Mon, 2 Jul 2012 16:31:03 +0200 Subject: [PATCH] betaverze klienta 2.0.0, u odesilajiciho pridan eval block --- src/warden-client/lib/WardenClientSend.pm | 101 ++++++++++++---------- 1 file changed, 56 insertions(+), 45 deletions(-) diff --git a/src/warden-client/lib/WardenClientSend.pm b/src/warden-client/lib/WardenClientSend.pm index 05f7850..6c5d007 100755 --- a/src/warden-client/lib/WardenClientSend.pm +++ b/src/warden-client/lib/WardenClientSend.pm @@ -79,51 +79,62 @@ sub c2s #------------------------------------------------------------------------------- sub saveNewEvent { - my $warden_path = shift; - my $event_ref = shift; - - my $etcdir = $warden_path . "/etc/"; - my $libdir = $warden_path . "/lib/"; - - # read the config file - require $libdir . "WardenClientConf.pm"; - my $conf_file = $etcdir . "warden-client.conf"; - my ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file) = WardenClientConf::loadConf($conf_file); - - # prepare variables of event - my @event = @{$event_ref}; - my $service = $event[0]; - my $detected = $event[1]; - my $type = $event[2]; - my $source_type = $event[3]; - my $source = $event[4]; - my $target_proto = $event[5]; - my $target_port = $event[6]; - my $attack_scale = $event[7]; - my $note = $event[8]; - my $priority = $event[9]; - my $timeout = $event[10]; - - # create SOAP data object - my $event = SOAP::Data->name( - event => \SOAP::Data->value( - SOAP::Data->name(SERVICE => $service), - SOAP::Data->name(DETECTED => $detected), - SOAP::Data->name(TYPE => $type), - SOAP::Data->name(SOURCE_TYPE => $source_type), - SOAP::Data->name(SOURCE => $source), - SOAP::Data->name(TARGET_PROTO => $target_proto), - SOAP::Data->name(TARGET_PORT => $target_port), - SOAP::Data->name(ATTACK_SCALE => $attack_scale), - SOAP::Data->name(NOTE => $note), - SOAP::Data->name(PRIORITY => $priority), - SOAP::Data->name(TIMEOUT => $timeout) - ) - ); - - my $result = c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "saveNewEvent", $event); - $result ? return 1 : return 0; - + my $result; + eval { + my $warden_path = shift; + my $event_ref = shift; + + my $etcdir = $warden_path . "/etc/"; + my $libdir = $warden_path . "/lib/"; + + # read the config file + require $libdir . "WardenClientConf.pm"; + my $conf_file = $etcdir . "warden-client.conf"; + my ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file) = WardenClientConf::loadConf($conf_file); + + # prepare variables of event + my @event = @{$event_ref}; + my $service = $event[0]; + my $detected = $event[1]; + my $type = $event[2]; + my $source_type = $event[3]; + my $source = $event[4]; + my $target_proto = $event[5]; + my $target_port = $event[6]; + my $attack_scale = $event[7]; + my $note = $event[8]; + my $priority = $event[9]; + my $timeout = $event[10]; + + # create SOAP data object + my $event = SOAP::Data->name( + event => \SOAP::Data->value( + SOAP::Data->name(SERVICE => $service), + SOAP::Data->name(DETECTED => $detected), + SOAP::Data->name(TYPE => $type), + SOAP::Data->name(SOURCE_TYPE => $source_type), + SOAP::Data->name(SOURCE => $source), + SOAP::Data->name(TARGET_PROTO => $target_proto), + SOAP::Data->name(TARGET_PORT => $target_port), + SOAP::Data->name(ATTACK_SCALE => $attack_scale), + SOAP::Data->name(NOTE => $note), + SOAP::Data->name(PRIORITY => $priority), + SOAP::Data->name(TIMEOUT => $timeout) + ) + ); + + $result = c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "saveNewEvent", $event); + #$result ? return 1 : return 0; + }; #end of eval block + + if ($@) { + print STDERR "Warden-client unexpected end in eval block: " . $@ . "\n"; + return 0; + } + else { + $result ? return 1 : return 0; + } + } # End of saveNewEvent 1; -- GitLab