Code

4cd6abff2aaf2812b918168fd030282b52bab201
[gosa.git] / gosa-si / server / events / siTriggered.pm
1 package siTriggered;
2 use Exporter;
3 @ISA = qw(Exporter);
4 my @events = (
5     "got_ping",
6     );
7 @EXPORT = @events;
9 use strict;
10 use warnings;
11 use GOSA::GosaSupportDaemon;
14 BEGIN {}
16 END {}
18 ### Start ######################################################################
20 #&main::read_configfile($main::cfg_file, %cfg_defaults);
22 sub get_events {
23     return \@events;
24 }
27 sub got_ping {
28     my ($msg, $msg_hash, $session_id) = @_;
30     my $source = @{$msg_hash->{source}}[0];
31     my $target = @{$msg_hash->{target}}[0];
32     my $header = @{$msg_hash->{header}}[0];
33     my $act_time = &get_time;
34     my @out_msg_l;
35     my $out_msg;
37     $session_id = @{$msg_hash->{'session_id'}}[0];
39     # check known_clients_db
40     my $sql_statement = "SELECT * FROM known_clients WHERE hostname='$source'";
41     my $query_res = $main::known_clients_db->select_dbentry( $sql_statement );
42     if( 1 == keys %{$query_res} ) {
43          my $sql_statement= "UPDATE known_clients ".
44             "SET status='$header', timestamp='$act_time' ".
45             "WHERE hostname='$source'";
46          my $res = $main::known_clients_db->update_dbentry( $sql_statement );
47     } 
48     
49     # check known_server_db
50     $sql_statement = "SELECT * FROM known_server WHERE hostname='$source'";
51     $query_res = $main::known_server_db->select_dbentry( $sql_statement );
52     if( 1 == keys %{$query_res} ) {
53          my $sql_statement= "UPDATE known_server ".
54             "SET status='$header', timestamp='$act_time' ".
55             "WHERE hostname='$source'";
56          my $res = $main::known_server_db->update_dbentry( $sql_statement );
57     } 
59     # create out_msg
60     my $out_hash = &create_xml_hash($header, $source, "GOSA");
61     &add_content2xml_hash($out_hash, "session_id", $session_id);
62     $out_msg = &create_xml_string($out_hash);
63     push(@out_msg_l, $out_msg);
64     
65     return @out_msg_l;
66 }
69 1;