# HG changeset patch # User SeekingFor # Date 1383100670 0 # Node ID 833da8c115a300835db57c9a99487933beea17ac # Parent f1a6de845e5dfba9c2c6c1ba61c19d43bc7aafb2# Parent ca4d35064aa25122be30f26e72ab51b65cc28c28 Merge git://1.41.41.1 diff -r f1a6de845e5d -r 833da8c115a3 contrib/whoisd/whoisd.pl --- a/contrib/whoisd/whoisd.pl Fri Aug 23 18:46:12 2013 +0000 +++ b/contrib/whoisd/whoisd.pl Wed Oct 30 02:37:50 2013 +0000 @@ -6,22 +6,37 @@ use strict; +#maybe chroot this whoisd? my $RESDB = "/services/resdb/resdb"; +my $HACK=0; my $QUERY=; $QUERY =~ s/\r\n//g; +$QUERY =~ s/\///g; +if($QUERY eq '') { + printf "%% error. no query. wtf?"; + exit 0; +} my $out; my $title; my $value; my @parts; my $i; +if($QUERY eq "!!\n") { + $QUERY=; + $QUERY =~ s/^!r(.+?)[\/,].*$/\1/; + printf "A500\n"; #fake this I guess. Does it even use that number for anything? + printf "%% Looks like you're trying -A on a BSDian traceroute with this server.\n"; + $HACK=1; +} + # ASNs if($QUERY =~ m/^AS(.+?)$/) { printf "%% AS section for %s\n", $QUERY; my $AS=$1; - chdir("$RESDB/db/as"); - if(chdir($AS)) { + chdir("$RESDB/db/as") || die "%% error"; + if(chdir($AS) || die "%% error") { foreach(split(/\n/,`grep '' -r .`)) { $out = $_; $out =~ s/^\.\///g; @@ -39,12 +54,12 @@ # IPv4 addresses if($QUERY =~ m/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/) { - printf "%% IP section for %s\n", $QUERY; - chdir("$RESDB/db/ip"); + printf "%% IP section for %s\n", $QUERY unless $HACK; + chdir("$RESDB/db/ip") || die "%% error"; @parts=split(/\./,$QUERY); for($i=0;$i=0;$i--) { - chdir($parts[$i]); + chdir("$RESDB/db/dom") || die "%% error"; + for($i=scalar(@parts)-1;$i>scalar(@parts)-3;$i--) { + if(!$parts[$i]) { + printf "%% error"; + exit + } + if(!chdir($parts[$i])) { + printf "%-20s %s", "warning" . ":", "domain not found."; + exit; + } } foreach(split(/\n/,`grep '' -r .`)) { $out = $_; @@ -81,25 +103,26 @@ } # default to assuming it is a name. -printf "%% user section for %s\n", $QUERY; +printf "%% user section for '%s'\n", $QUERY unless $HACK; -chdir("$RESDB/db/usr"); +chdir("$RESDB/db/usr") || die "%% error"; if(chdir($QUERY)) { foreach(split(/\n/,`grep '' -r .`)) { $out = $_; $out =~ s/^\.\///g; $out =~ m/^(.+?):(.+?)$/; ($title, $value) = ($1, $2); - printf "%-20s %s\n", $title . ":", $value; + printf "%-20s %s\n", $title . ":", $value unless $HACK; } } else { - printf "%-20s missing db/usr file.\n", "warning" . ":"; + printf "%-20s missing db/usr file.\n", "warning" . ":" unless $HACK; } -chdir("$RESDB/db/as"); +chdir("$RESDB/db/as") || die "%% error"; foreach(split(/\n/,`grep '^$QUERY\$' */owner | cut -d/ -f1`)) { $out = $_; $out =~ s/\n//g; - printf "%-20s %s\n", "ASN" . ":", $out; + printf "%-20s AS%s\n", "origin" . ":", $out if $HACK; + printf "%-20s AS%s\n", "origin" . ":", $out unless $HACK; } foreach(split(/\n/,`grep -i -e "^$QUERY\$" "$RESDB/db/dom"/*/*/owner`)) { diff -r f1a6de845e5d -r 833da8c115a3 db/dom/ano/allowed/ns/ns6.allowed.ano --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/db/dom/ano/allowed/ns/ns6.allowed.ano Wed Oct 30 02:37:50 2013 +0000 @@ -0,0 +1,1 @@ +fd63:1e39:6f73:2929::1 diff -r f1a6de845e5d -r 833da8c115a3 db/dom/ano/whois/ns/ns.whois.ano --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/db/dom/ano/whois/ns/ns.whois.ano Wed Oct 30 02:37:50 2013 +0000 @@ -0,0 +1,1 @@ +1.41.41.1 diff -r f1a6de845e5d -r 833da8c115a3 db/dom/ano/whois/owner --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/db/dom/ano/whois/owner Wed Oct 30 02:37:50 2013 +0000 @@ -0,0 +1,1 @@ +epoch diff -r f1a6de845e5d -r 833da8c115a3 scripts/nameserver_autogen/bind_tld_zonefile --- a/scripts/nameserver_autogen/bind_tld_zonefile Fri Aug 23 18:46:12 2013 +0000 +++ b/scripts/nameserver_autogen/bind_tld_zonefile Wed Oct 30 02:37:50 2013 +0000 @@ -1,4 +1,5 @@ #!/usr/bin/php +#does anyone use this? $ANO_ZONEFILE -echo '$TTL 3600' >> $ANO_ZONEFILE -echo '@ IN SOA localns root ('`date +" %Y%m%d00"`' 60 300 3600000 3600 )' >> $ANO_ZONEFILE -echo '@ IN NS localns' >> $ANO_ZONEFILE -echo 'localns IN A 127.0.0.1' >> $ANO_ZONEFILE cd ${RESDB_PATH}/db/dom/ano -echo -n generating zonefile... +echo -n "generating ipv4 reverse lookup zonefile for 1/8..." + +echo "; this zonefile genreated on: `date`" > "$RDNS_ZONEFILE" +echo '$TTL 3600' >> "$RDNS_ZONEFILE" +echo '@ IN SOA localhost. root.localhost. ('`date +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$RDNS_ZONEFILE" +echo '@ IN NS localhost.' >> "$RDNS_ZONEFILE" +echo 'localhost. IN A 127.0.0.1' >> "$RDNS_ZONEFILE" + +for i in `ls /services/resdb/resdb/db/ip/01/*/*/ns/*`;do + f=$(basename $i) + a=$(basename $(dirname $i)) + b=$(basename $(dirname $(dirname $i))) + c=$(basename $(dirname $(dirname $(dirname $i)))) + printf "%d.%d IN NS %s\n" $[0x${b}] $[0x${c}] ${f}. +done >> "$RDNS_ZONEFILE" +echo done. + +echo -n generating .ano TLD zonefile... + +echo "; this zonefile genreated on: `date`" > "$ANO_ZONEFILE" +echo '$TTL 3600' >> "$ANO_ZONEFILE" +echo '@ IN SOA localhost. root.localhost. ('`date +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$ANO_ZONEFILE" +echo '@ IN NS localhost.' >> "$ANO_ZONEFILE" +echo 'localhost. IN A 127.0.0.1' >> "$ANO_ZONEFILE" + for name in *;do if [ -e "${name}/ns/" ];then for server in "$name"/ns/*;do - if grep '\.ano$' <<< $name > /dev/null;then + if grep '\.ano$' <<< "$name" > /dev/null;then true fi - if grep '\.ano$' <<< $server > /dev/null;then + if grep '\.ano$' <<< "$server" > /dev/null;then true fi fqserver=`cut -d/ -f3- <<< $server` echo -e "${name}\tIN NS\t${fqserver}." for ip in `cat ${server}`;do - echo -e "${fqserver}.\tIN A\t$ip" + if grep ':' <<< "$ip" > /dev/null;then + echo -e "${fqserver}.\tIN AAAA\t$ip" + else + echo -e "${fqserver}.\tIN A\t$ip" + fi done done fi -done >> $ANO_ZONEFILE +done >> "$ANO_ZONEFILE" echo done. echo might want to send a sighup to your named now.