From 12183ece8e4cb1bb81072a72f696572c8b3a07ee Mon Sep 17 00:00:00 2001 From: Tarik Gasmi Date: Tue, 18 Sep 2007 15:18:38 +0000 Subject: ldap-site-mngmt: actualized WebIF and DHCPConfig Generationscript git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1340 95ad53e4-c205-0410-b2fa-d234c58c8868 --- ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php | 88 ++++++++++++---------- 1 file changed, 47 insertions(+), 41 deletions(-) (limited to 'ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php') diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php b/ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php index c6cef33a..416654e2 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php @@ -8,7 +8,7 @@ $range2 = $_POST['addrange2']; $unknownclients = $_POST['unknownclients']; $mnr = $_POST['mnr']; -$seconds = 200; +$seconds = 2; $url = "dhcppool.php?mnr=".$mnr; echo " @@ -28,57 +28,63 @@ if ($syntax->check_ip_syntax($range1) && $syntax->check_ip_syntax($range2)){ $fe = explode('.',$range2); if ( $fs[0] == $fe[0] && $fs[1] == $fe[1] && $fs[2] == $fe[2] ) { if ( $fs[3] <= $fe[3] ){ - # Range zusammenstellen - $range = implode("_", array($range1,$range2)); - # Freie IP Bereiche testen - $fipb_array = get_freeipblocks_au($auDN); - for ($i=0; $i < count($fipb_array); $i++){ - if ( split_iprange($range,$fipb_array[$i]) != 0 ){ - $ipranges = split_iprange($range,$fipb_array[$i]); - array_splice($fipb_array, $i, 1, $ipranges); - break; - } + # DHCP Subnet DN finden + $subnet = implode(".", array($fs[0],$fs[1],$fs[2],"0")); + print_r($subnet);echo"

"; + if(!($result = uniLdapSearch($ds, "ou=RIPM,".$suffix, "(&(objectclass=dhcpSubnet)(cn=$subnet))", array("dn","dhcphlpcont"), "", "sub", 0, 0))) { + # redirect(5, "", $ldapError, FALSE); + echo "no search"; + die; } - if ($i < count($fipb_array) ){ - foreach ( $fipb_array as $item ){ - $entry ['FreeIPBlock'][] = $item; - } - $results = ldap_mod_replace($ds,$auDN,$entry); - if ($results){ - echo "
Neue FIPBs erfolgreich eingetragen!
"; - - # DHCP Subnet DN finden - $subnet = implode(".", array($fs[0],$fs[1],$fs[2],"0")); - print_r($subnet);echo"

"; - if(!($result = uniLdapSearch($ds, "ou=RIPM,".$suffix, "(&(objectclass=dhcpSubnet)(cn=$subnet))", array("dn","dhcphlpcont"), "", "sub", 0, 0))) { - # redirect(5, "", $ldapError, FALSE); - echo "no search"; - die; - } - $result = ldapArraySauber($result); - print_r($result);echo "

"; - if (count($result[0]) != 0){ - $result = add_dhcppool($result[0]['dn'],$range,$unknownclients,$result[0]['dhcphlpcont']); + $result = ldapArraySauber($result); + #print_r($result);echo "

"; + if (count($result[0]) != 0){ + + $subnetdn = $result[0]['dn']; + $subnetdnexp = ldap_explode_dn( $subnetdn, 0); + $subnetauexp = array_slice($subnetdnexp, 3); + $subnetau = implode(',',$subnetauexp); + + # Range zusammenstellen + $range = implode("_", array($range1,$range2)); + + # Freie IP Bereiche testen + $fipb_array = get_freeipblocks_au($auDN); + for ($i=0; $i < count($fipb_array); $i++){ + if ( split_iprange($range,$fipb_array[$i]) != 0 ){ + $ipranges = split_iprange($range,$fipb_array[$i]); + array_splice($fipb_array, $i, 1, $ipranges); + break; + } + } + if ($i < count($fipb_array) ){ + foreach ( $fipb_array as $item ){ + $entry ['FreeIPBlock'][] = $item; + } + $results = ldap_mod_replace($ds,$auDN,$entry); + if ($results){ + echo "
Neue FIPBs erfolgreich eingetragen!
"; + $result = add_dhcppool($subnetdn,$range,$unknownclients,$result[0]['dhcphlpcont']); if ($result){ echo "
Dynamischer DHCP Pool erfolgreich eingetragen!
" ; - update_dhcpmtime(); + update_dhcpmtime(array($subnetau)); }else{ echo "
Fehler beim eintragen des dynamischen DHCP Pools!
"; # Range wieder in FIPBs aufnehmen. $entry2 ['FreeIPBlock'] = $range; ldap_mod_add($ds,$auDN,$entry2); merge_ipranges($auDN); - } - }else{ - echo "DHCP Subnet nicht im System vorhanden!
"; - } - }else{ - echo "
Fehler beim eintragen der FIPBs!
"; - } + } + }else{ + echo "
Fehler beim eintragen der FIPBs!
"; + } + }else{ + printf("
IP Range %s ist nicht im verfuegbaren Bereich!
", $range ); + } }else{ - printf("
IP Range %s ist nicht im verfuegbaren Bereich!
", $range ); - } + echo "DHCP Subnet nicht im System vorhanden!
"; + } }else{ echo "erster Range Wert grösser als zweiter Range Wert
"; } -- cgit v1.2.3-55-g7522