diff --git a/gosa-si/gosa-si-client b/gosa-si/gosa-si-client
index 3ae58a5813c42c561edfb1266eb6e0ebf18261cc..54884536a63e2ec4b5c82870f9b74722b463bbfb 100755 (executable)
--- a/gosa-si/gosa-si-client
+++ b/gosa-si/gosa-si-client
# DESCRIPTION:
#
# OPTIONS: ---
-# REQUIREMENTS: ---
+# REQUIREMENTS: libnetaddr-ip-perl
# BUGS: ---
# NOTES:
# AUTHOR: (Andreas Rettenberger), <rettenberger@gonicus.de>
use Sys::Syslog qw( :DEFAULT setlogsock);
use File::Spec;
use Cwd;
-use NetAddr::IP::Lite;
+use NetAddr::IP;
use GOSA::GosaSupportDaemon;
my (@events);
# default variables
-my $event_dir = "/etc/gosa-si/client/events";
+my $event_dir = "/usr/lib/gosa-si/client/events";
$known_hosts = {};
$foreground = 0 ;
%cfg_defaults =
sub check_cmdline_param () {
my $err_config;
my $err_counter = 0;
- if( not defined( $cfg_file)) {
- #$err_config = "please specify a config file";
- #$err_counter += 1;
- my $cwd = getcwd;
- my $name = "/etc/gosa-si/client.conf";
- $cfg_file = File::Spec->catfile( $cwd, $name );
- print STDERR "no conf file specified\n try to use default: $cfg_file\n";
+ if(not defined($cfg_file)) {
+ $cfg_file = "/etc/gosa-si/client.conf";
+ if(! -r $cfg_file) {
+ $err_config = "please specify a config file";
+ $err_counter += 1;
+ }
}
if( $err_counter > 0 ) {
&usage( "", 1 );
$destination= sprintf("%d.%d.%d.%d", hex($a), hex($b), hex($c), hex($d));
($d,$c,$b,$a)=unpack('a2 a2 a2 a2', $Mask);
$mask= sprintf("%d.%d.%d.%d", hex($a), hex($b), hex($c), hex($d));
- if(new NetAddr::IP::Lite($server_ip)->within(new NetAddr::IP::Lite($destination, $mask))) {
+ if(new NetAddr::IP($server_ip)->within(new NetAddr::IP($destination, $mask))) {
# destination matches route, save mac and exit
$result= &get_mac($Iface);
last;
opendir(DIR, $event_dir)
or daemon_log("cannot find directory $event_dir!\ngosa-si-client starts without any accepting events!", 1);
my $file_name;
- @events = ();
+ my @events_list = ();
while(defined($file_name = readdir(DIR))){
if ($file_name eq "." || $file_name eq "..") {
next;
}
- push(@events, $file_name);
+ push(@events_list, $file_name);
}
- my $events = join(",", @events);
+ my $events = join(",", @events_list);
daemon_log("found events: $events", 1);
# fill in all possible servers
my ($rout, $wout, $reg_server);
foreach my $server (@servers) {
-# TODO : server abhängige macadress und ipadresse eintragen
-
# create msg hash
my $register_hash = &create_xml_hash("here_i_am", $client_address, $server);
&add_content2xml_hash($register_hash, "new_passwd", $new_server_passwd);
&add_content2xml_hash($register_hash, "mac_address", $client_mac_address);
&add_content2xml_hash($register_hash, "events", $events);
+ my $tmp = print Dumper $register_hash;
+
# send xml hash to server with general server passwd
my $answer = &send_msg_hash2address($register_hash, $server, $server_passwd);
my $header = @{$msg_hash->{header}}[0];
- daemon_log("recieve '$header' from $host", 1);
+ daemon_log("receive '$header' from $host", 1);
# daemon_log("header from msg:", 1);
# daemon_log("\t$header", 1);
# daemon_log("msg to process:", 7);
&read_configfile;
&check_pid;
-
-open STDIN, ‘/dev/null’ or die “Can’t read /dev/null: $!”;
-open STDOUT, ‘>>/dev/null’ or die “Can’t write to /dev/null: $!”;
-open STDERR, ‘>>/dev/null’ or die “Can’t write to /dev/null: $!”;
+if ( ! $foreground ) {
+ open STDIN, '/dev/null' or die "Can’t read /dev/null: $!";
+ open STDOUT, '>>/dev/null' or die "Can't write to /dev/null: $!";
+ open STDERR, '>>/dev/null' or die "Can't write to /dev/null: $!";
+}
# restart daemon log file