Code

Added re array
[gosa.git] / gosa-si / modules / SIPackages.pm
index b06f3f2ef0f159201910f7c0ef5bbe2efcb7fb0b..83245316007fec667035780972e76137acc6c2f2 100644 (file)
@@ -16,7 +16,6 @@ use NetAddr::IP;
 use Net::LDAP;
 use Socket;
 use Net::hostent;
-use utf8;
 
 my $event_dir = "/usr/lib/gosa-si/server/events";
 use lib "/usr/lib/gosa-si/server/events";
@@ -24,7 +23,7 @@ use lib "/usr/lib/gosa-si/server/events";
 BEGIN{}
 END {}
 
-my ($server_ip, $server_mac_address, $server_port, $SIPackages_key, $max_clients, $ldap_uri, $ldap_base, $ldap_admin_dn, $ldap_admin_password, $server_interface);
+my ($server_ip, $server_port, $SIPackages_key, $max_clients, $ldap_uri, $ldap_base, $ldap_admin_dn, $ldap_admin_password, $server_interface);
 my ($bus_activ, $bus_key, $bus_ip, $bus_port);
 my $server;
 my $event_hash;
@@ -42,7 +41,7 @@ my %cfg_defaults = (
     },
 "server" => {
     "ip" => [\$server_ip, "0.0.0.0"],
-    "mac-address" => [\$server_mac_address, "00:00:00:00:00"],
+    "mac-address" => [\$main::server_mac_address, "00:00:00:00:00"],
     "port" => [\$server_port, "20081"],
     "ldap-uri" => [\$ldap_uri, ""],
     "ldap-base" => [\$ldap_base, ""],
@@ -64,27 +63,28 @@ my %cfg_defaults = (
 # if server_ip is not an ip address but a name
 if( inet_aton($server_ip) ){ $server_ip = inet_ntoa(inet_aton($server_ip)); } 
 $network_interface= &get_interface_for_ip($server_ip);
-$server_mac_address= &get_mac($network_interface);
+$main::server_mac_address= &get_mac($network_interface);
 
 &import_events();
 
 # Unit tag can be defined in config
 if((not defined($main::gosa_unit_tag)) || length($main::gosa_unit_tag) == 0) {
        # Read gosaUnitTag from LDAP
-  &main::refresh_ldap_handle();
+        &main::refresh_ldap_handle();
        if( defined($main::ldap_handle) ) {
-               &main::daemon_log("INFO: Searching for servers gosaUnitTag with mac address $server_mac_address",5);
+               &main::daemon_log("INFO: Searching for servers gosaUnitTag with mac address $main::server_mac_address",5);
                # Perform search for Unit Tag
                $mesg = $main::ldap_handle->search(
                        base   => $ldap_base,
                        scope  => 'sub',
                        attrs  => ['gosaUnitTag'],
-                       filter => "(macaddress=$server_mac_address)"
+                       filter => "(macaddress=$main::server_mac_address)"
                );
 
                if ($mesg->count == 1) {
                        my $entry= $mesg->entry(0);
                        my $unit_tag= $entry->get_value("gosaUnitTag");
+                       $main::ldap_server_dn= $mesg->entry(0)->dn;
                        if(defined($unit_tag) && length($unit_tag) > 0) {
                                &main::daemon_log("INFO: Detected gosaUnitTag $unit_tag for creating entries", 5);
                                $main::gosa_unit_tag= $unit_tag;
@@ -103,6 +103,7 @@ if((not defined($main::gosa_unit_tag)) || length($main::gosa_unit_tag) == 0) {
                        if ($mesg->count == 1) {
                                my $entry= $mesg->entry(0);
                                my $unit_tag= $entry->get_value("gosaUnitTag");
+                               $main::ldap_server_dn= $mesg->entry(0)->dn;
                                if(defined($unit_tag) && length($unit_tag) > 0) {
                                        &main::daemon_log("INFO: Detected gosaUnitTag $unit_tag for creating entries", 5);
                                        $main::gosa_unit_tag= $unit_tag;
@@ -121,6 +122,7 @@ if((not defined($main::gosa_unit_tag)) || length($main::gosa_unit_tag) == 0) {
                                if ($mesg->count == 1) {
                                        my $entry= $mesg->entry(0);
                                        my $unit_tag= $entry->get_value("gosaUnitTag");
+                                       $main::ldap_server_dn= $mesg->entry(0)->dn;
                                        if(defined($unit_tag) && length($unit_tag) > 0) {
                                                &main::daemon_log("INFO: Detected gosaUnitTag $unit_tag for creating entries", 5);
                                                $main::gosa_unit_tag= $unit_tag;
@@ -304,8 +306,8 @@ sub get_mac {
                        my $SIOCGIFHWADDR= 0x8927;     # man 2 ioctl_list
 
                        # A configured MAC Address should always override a guessed value
-                       if ($server_mac_address and length($server_mac_address) > 0) {
-                               $result= $server_mac_address;
+                       if ($main::server_mac_address and length($main::server_mac_address) > 0) {
+                               $result= $main::server_mac_address;
                        }
 
                        socket SOCKET, PF_INET, SOCK_DGRAM, getprotobyname('ip')