index 80ce0ada7ea9b34d085b9bdf44aece6257816bdd..884b8f7ffdcab166588d17d6518de15da1a054b2 100644 (file)
return $result;
}
-#=== FUNCTION ================================================================
-# NAME: open_socket
-# PARAMETERS: PeerAddr string something like 192.168.1.1 or 192.168.1.1:10000
-# [PeerPort] string necessary if port not appended by PeerAddr
-# RETURNS: socket IO::Socket::INET
-# DESCRIPTION: open a socket to PeerAddr
-#===============================================================================
-#sub open_socket {
-# my ($PeerAddr, $PeerPort) = @_ ;
-# if(defined($PeerPort)){
-# $PeerAddr = $PeerAddr.":".$PeerPort;
-# }
-# my $socket;
-# $socket = new IO::Socket::INET(PeerAddr => $PeerAddr ,
-# Porto => "tcp" ,
-# Type => SOCK_STREAM,
-# Timeout => 5,
-# );
-# if(not defined $socket) {
-# return;
-# }
-# &main::daemon_log("open_socket to: $PeerAddr", 7);
-# return $socket;
-#}
#=== FUNCTION ================================================================
# NAME: register_at_bus
&main::daemon_log("function 'process_incoming_msg': got no msg", 7);
}
- &main::daemon_log("ServerPackages: incoming msg: \n$crypted_msg", 8);
-
$crypted_msg =~ /^([\s\S]*?)\.(\d{1,3}?)\.(\d{1,3}?)\.(\d{1,3}?)\.(\d{1,3}?)$/;
$crypted_msg = $1;
my $host="0.0.0.0";
- if($1 && $2 && $3 && $4) {
+ if(defined $2 && defined $3 && defined $4 && defined $5) {
$host = sprintf("%s.%s.%s.%s", $2, $3, $4, $5);
}
# check wether incoming msg is from a known_server
if( not defined $msg ) {
- #my $query_res = $main::known_server_db->select_dbentry( {table=>'known_server'} );
my $sql_statement= "SELECT * FROM known_server";
my $query_res = $main::known_server_db->select_dbentry( $sql_statement );
+
while( my ($hit_num, $hit) = each %{ $query_res } ) {
$host_name = $hit->{hostname};
+
if( not $host_name =~ "^$host") {
next;
}
else {
if ($target eq "*") {
# msg is for all clients
- my $query_res = $main::known_clients_db->select_dbentry( {table=>'known_clients'} );
+ my $sql_statement = "SELECT * FROM known_clients";
+ my $query_res = $main::known_clients_db->select_dbentry( $sql_statement );
while( my ($hit_num, $hit) = each %{ $query_res } ) {
$host_name = $hit->{hostname};
$host_key = $hit->{hostkey};
my $host_key;
- if( not defined $host_key ) {
- my $query_res = $main::known_clients_db->select_dbentry( {table=>'known_clients', hostname=>$target} );
+ if( not defined $host_key ) {
+ my $sql_statement = "SELECT * FROM known_clients WHERE hostname='$target'";
+ my $query_res = $main::known_clients_db->select_dbentry( $sql_statement );
if( 1 == keys %{$query_res} ) {
$host_key = $query_res->{1}->{host_key};
}
}
if( not defined $host_key ) {
- my $query_res = $main::known_server_db->select_dbentry( {table=>'known_server', hostname=>$target} );
+ my $sql_statement = "SELECT * FROM known_server WHERE hostname='$target'";
+ my $query_res = $main::known_server_db->select_dbentry( $sql_statement );
if( 1 == keys %{$query_res} ) {
$host_key = $query_res->{1}->{host_key};
}
my $query_res;
# check known_clients_db
- $query_res = $main::known_clients_db->select_dbentry( {table=>'known_clients', hostname=>$source_name} );
+ my $sql_statement = "SELECT * FROM known_clients WHERE hostname='$source_name'";
+ $query_res = $main::known_clients_db->select_dbentry( $sql_statement );
if( 1 == keys %{$query_res} ) {
- my $update_hash = { table=>'known_clients' };
- $update_hash->{where} = [ { hostname=>[$source_name] } ];
- $update_hash->{update} = [ {
- hostkey=>[$source_key],
- timestamp=>[&get_time],
- } ];
- my $res = $main::known_clients_db->update_dbentry( $update_hash );
+ my $act_time = &get_time;
+ my $sql_statement= "UPDATE known_clients ".
+ "SET hostkey='$source_key', timestamp='$act_time' ".
+ "WHERE hostname='$source_name'";
+ my $res = $main::known_clients_db->update_dbentry( $sql_statement );
my $hash = &create_xml_hash("confirm_new_passwd", $server_address, $source_name);
&send_msg_hash2address($hash, $source_name, $source_key);
}
# check known_server_db
- $query_res = $main::known_server_db->select_dbentry( {table=>'known_server', hostname=>$source_name } );
+ $sql_statement = "SELECT * FROM known_server WHERE hostname='$source_name'";
+ $query_res = $main::known_server_db->select_dbentry( $sql_statement );
if( 1 == keys %{$query_res} ) {
- my $update_hash = { table=>'known_server' };
- $update_hash->{where} = [ { hostname=>[$source_name] } ];
- $update_hash->{update} = [ {
- hostkey=>[$source_key],
- timestamp=>[&get_time],
- } ];
- my $res = $main::known_server_db->update_dbentry( $update_hash );
+ my $act_time = &get_time;
+ my $sql_statement= "UPDATE known_server ".
+ "SET hostkey='$source_key', timestamp='$act_time' ".
+ "WHERE hostname='$source_name'";
+ my $res = $main::known_server_db->update_dbentry( $sql_statement );
my $hash = &create_xml_hash("confirm_new_passwd", $server_address, $source_name);
&send_msg_hash2address($hash, $source_name, $source_key);
}
-sub send_msg_hash {
- my ($hash, $host_name, $host_key);
-
-
- my $answer = &send_msg_hash2address($hash, $host_name, $host_key);
-
- return;
-}
-
-
#=== FUNCTION ================================================================
# NAME: here_i_am
# PARAMETERS: msg_hash - hash - hash from function create_xml_hash
my $out_hash;
# number of known clients
- my $nu_clients = keys %{ $main::known_clients_db->select_dbentry( {table=>'known_clients'} ) };
+ my $nu_clients= $main::known_clients_db->count_dbentries('known_clients');
# check wether client address or mac address is already known
- if (exists $main::known_clients->{$source}) {
+ my $sql_statement= "SELECT * FROM known_clients WHERE hostname='$source'";
+ my $db_res= $main::known_clients_db->select_dbentry( $sql_statement );
+
+ if ( 1 == keys %{$db_res} ) {
&main::daemon_log("WARNING: $source is already known as a client", 1);
&main::daemon_log("WARNING: values for $source are being overwritten", 1);
$nu_clients --;
# create entry in known_clients
my $events = @{$msg_hash->{events}}[0];
+
# add entry to known_clients_db
my $res = $main::known_clients_db->add_dbentry( {table=>'known_clients',
primkey=>'hostname',
# notify registered client to bus
if( $bus_activ eq "on") {
# fetch actual bus key
- my $query_res = $main::known_server_db->select_dbentry( {table=>'known_server'} );
- my $hostkey = $query_res->{1}->{hostkey};
-
+ my $sql_statement= "SELECT * FROM known_server WHERE status='bus'";
+ my $query_res = $main::known_server_db->select_dbentry( $sql_statement );
+ my $hostkey = $query_res->{1}->{'hostkey'};
+
# send update msg to bus
$out_hash = &create_xml_hash("new_client", $server_address, $bus_address, $source);
&send_msg_hash2address($out_hash, $bus_address, $hostkey);
sub new_ldap_config {
my ($address) = @_ ;
- my $res = $main::known_clients_db->select_dbentry( { table=>'known_clients', hostname=>$address } );
+ my $sql_statement= "SELECT * FROM known_clients WHERE hostname='$address'";
+ my $res = $main::known_clients_db->select_dbentry( $sql_statement );
# check hit
my $hit_counter = keys %{$res};