From e28564dbde4f922a6a8263e3dea32d56b60b5b5b Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Wed, 16 Jun 2010 11:41:46 -0400 Subject: [PATCH] Implemented: FS#468 - Client name conversion in FTP user too restricted --- helper_scripts/dns_export_to_bind.php | 145 +++++++++++++++++++----------------------------- 1 files changed, 57 insertions(+), 88 deletions(-) diff --git a/helper_scripts/dns_export_to_bind.php b/helper_scripts/dns_export_to_bind.php index beca21c..56628d7 100644 --- a/helper_scripts/dns_export_to_bind.php +++ b/helper_scripts/dns_export_to_bind.php @@ -1,103 +1,72 @@ <?php -$host="IP"; -$user="root"; +$host="IP-Adresse-ISP-CONFIG-Master-Server"; +$user="MYSQL-USER"; $password="PASSWORD"; mysql_connect($host,$user,$password) or die(mysql_error()); mysql_select_db("dbispconfig"); $result = ""; $result = mysql_query("SELECT id,origin,ns,ttl,mbox,serial,refresh,retry,expire,minimum FROM dns_soa;"); -exec ("rm -f /etc/bind/named.conf.local"); - -$fx = fopen("/etc/bind/named.conf.local", "a+"); - -function hostname2ipfunktion($tmp1, $timeout = -1) { - if ($tmp1 == 0) { - $query = `nslookup -timeout=$timeout -retry=0 $tmp1`; - if(preg_match('/\nAddress: (.*)\n/', $query, $matches)) - return trim($matches[1]); - return $tmp1; -} -} +function hostname2ipfunktion($tmp1, $timeout = 1) + { + if ($tmp1 == 0) + { + $query = `nslookup -timeout=$timeout -retry=0 $tmp1`; + if(preg_match('/\nAddress: (.*)\n/', $query, $matches)) + return trim($matches[1]); + return $tmp1; + } + } while($row = mysql_fetch_array($result)) -{ + { ### Hier ALLES Aktivieren bei Primary Nameserver ######################################################################################## -#$tmp1 = substr($row["origin"],0,-1); -#fwrite($fx,"zone \""); -#fwrite($fx,substr($row["origin"],0,-1)); -#fwrite($fx,"\" in { type master; file \""); -#fwrite($fx,substr($row["origin"],0,-1)); -#fwrite($fx,"\"; };\n"); -#$result2 = mysql_query("select name,type,aux,data from dns_rr where zone=$row[id];"); -#exec("rm -f /var/cache/bind/$tmp1"); -#$f = fopen("/var/cache/bind/$tmp1", "a+"); -#fwrite($f,"\$TTL "); -#fwrite($f,$row['ttl']); -#fwrite($f,"\n"); -#fwrite($f,"@ IN SOA "); -#fwrite($f,$row['ns']); -#fwrite($f," "); -#fwrite($f,$row['mbox']); -#fwrite($f," ("); -#fwrite($f,"\n"); -#fwrite($f," "); -#fwrite($f,$row['serial']); -#fwrite($f," ;Serial"); -#fwrite($f,"\n"); -#fwrite($f," "); -#fwrite($f,$row['refresh']); -#fwrite($f," ;Refresh"); -#fwrite($f,"\n"); -#fwrite($f," "); -#fwrite($f,$row['retry']); -#fwrite($f," ;Retry"); -#fwrite($f,"\n"); -#fwrite($f," "); -#fwrite($f,$row['expire']); -#fwrite($f," ;Expire"); -#fwrite($f,"\n"); -#fwrite($f," "); -#fwrite($f,$row['minimum']); -#fwrite($f," )"); -#fwrite($f," ;Minimum"); -#fwrite($f,"\n"); -#fwrite($f,"\n"); -#while($row2 = mysql_fetch_row($result2)) -#{ -#fwrite($f,$row2['0']); -#fwrite($f," IN "); -#fwrite($f,$row2['1']); -#fwrite($f," "); -#if ($row2['2']>0) -#{ -#fwrite($f,$row2['2']); -#fwrite($f," "); -#} -#fwrite($f,$row2['3']); -#fwrite($f,"\n"); -#} -#fclose($f); -#### ENDE Prim�rer Namerserver ########################################################################################################### + $varx11=substr($row["origin"],0,-1); + unlink("/var/cache/bind/$varx11"); + $arr1[$x11]="zone \"$varx11\" in { type master; file \"$varx11\"; };\n"; + $x11=$x11+1; + $result2 = mysql_query("select name,type,aux,data from dns_rr where zone=$row[id] ORDER BY name ASC;"); + $arr3[0]="\$TTL ".$row['ttl']."\n@ IN SOA ".$row['ns']." ".$row['mbox']." (\n ".$row['serial']." ;Serial\n"." ".$row['refresh']." ;Refresh\n"." ".$row['retry']." ;Retry\n"." ".$row['expire']." ;Expire\n"." ".$row['minimum']." ) ;Minimum\n\n"; + + $xx1=1; + while($row2 = mysql_fetch_row($result2)) + { + $arr2[$xx1]=$row2['0']." IN ".$row2['1']." "; + + if ($row2['2']>0) + { + $arr3[$xx1]=$arr2[$xx1].$row2['2']." ".$row2['3']."\n"; + } + else + { + $arr3[$xx1]=$arr2[$xx1].$row2['3']."\n"; + } + $xx1=$xx1+1; + } + $f = fopen("/var/cache/bind/$varx11", "a+"); + foreach($arr3 as $values) fputs($f, $values); + fclose($f); + $arr2=array(); + $arr3=array(); +### ENDE Prim�rer Nameserver ########################################################################################################### ### Hier ALLES Aktivieren bei Secondary Nameserver ###################################################################################### -$tmp1 = substr($row["ns"],0,-1); -$tmp2 = substr($row["origin"],0,-1); -$nsip = hostname2ipfunktion($tmp1); -if ($nsip == $tmp1) { -echo "$tmp2 $tmp1 Not a valid Nameserver"; -echo "\n"; -} -else { -fwrite($fx,"zone \""); -fwrite($fx,substr($row["origin"],0,-1)); -fwrite($fx,"\" in { type slave; file \""); -fwrite($fx,substr($row["origin"],0,-1)); -fwrite($fx,"\"; masters {"); -fwrite($fx,"$nsip; }; };"); -fwrite($fx,"\n"); -} +# $tmp1 = substr($row["ns"],0,-1); +# $tmp2 = substr($row["origin"],0,-1); +# $nsip = hostname2ipfunktion($tmp1); +# if ($nsip == $tmp1) # { +# echo "$tmp2 $tmp1 Not a valid Nameserver"; +# echo "\n"; +# } +# else # { +# $arr1[$x11]="zone \"".$tmp2."\" in { type slave; file \"".$tmp2."\"; masters {".$nsip."; }; };\n"; +# $x11=$x11+1; +# } ### ENDE Secondary Nameserver ########################################################################################################### -} + } + +unlink ("/etc/bind/named.conf.local"); +$fx = fopen("/etc/bind/named.conf.local", "a+"); +foreach($arr1 as $values) fputs($fx, $values); fclose($fx); exec("/etc/init.d/bind9 reload"); ?> \ No newline at end of file -- Gitblit v1.9.1