#!/usr/bin/perl -w

use strict;

$|=1;           # no buffering

my $line=<>;
chomp($line);

unless($line eq "HELO\t1") {
	print "FAIL\n";
	<>;
	exit;
}

print "OK       paqo backend firing up\n";    # print our banner

while(<>)
{
	chomp();
	my @arr=split(/\t/);
	if(@arr<6) {
		print "LOG      PowerDNS sent unparseable line\n";
		print "FAIL\n";
		next;
	}
	
	print STDERR "$$ Query: $_\n";

	my ($type,$qname,$qclass,$qtype,$id,$ip)=split(/\t/);

	if ($qtype eq "A" || $qtype eq "ANY") {
		if (substr($qname, 0, 5) eq "www2.") {
			print STDERR "$$ Sent www2 reply for $qname\n";
			print "DATA	$qname	$qclass	A	3600	-1	22.22.22.22\n";
		} elsif (substr($qname, 0, 5) eq "www3.") {
			print STDERR "$$ Sent www3 reply for $qname\n";
			print "DATA	$qname	$qclass	A	3600	-1	33.33.33.33\n";
		} else {
			print STDERR "$$ Sent default reply for $qname\n";
			print "DATA	$qname	$qclass	A	3600	-1	11.11.11.11\n";
		}
	}

	if ($qtype eq "SOA" && index($qname, '.') == rindex($qname, '.')) {
		print STDERR "$$ Sent SOA reply for $qname\n";
		print "DATA	$qname	$qclass	SOA	3600	-1	ns1.paqo.com. one.paqo.com. 1 10800 3600 604800 3600\n";
	}


=begin example
	if(($qtype eq "SOA") && $qname eq "test.com") {
		print "DATA     $qname  $qclass SOA     3600
 -1      dns.test.com. help.test.com. 1 10800 3600 604800 3600\n";
	}
	elsif(($qtype eq "A" || $qtype eq "ANY") && $qname eq "test.com") {
		print "DATA     $qname  $qclass A       3600  -1      1.2.3.1\n";
	}
	elsif(($qtype eq "A" || $qtype eq "ANY") && $qname eq "a.test.com") {
		print "DATA     $qname  $qclass A       3600 -1      1.2.3.1\n";
	}
	elsif(($qtype eq "A" || $qtype eq "ANY") && $qname eq "b.test.com") {
		print "DATA     $qname  $qclass A       3600 -1      1.2.3.2\n";
	}
	elsif(($qtype eq "A" || $qtype eq "ANY") && $qname eq "c.test.com") {
		print "DATA     $qname  $qclass A       3600  -1      1.2.3.3\n";
	}
	elsif(($qtype eq "CNAME" || $qtype eq "ANY") && $qname eq "aa.test.com") {
		print "DATA     $qname  $qclass CNAME   3600  -1      a.test.com\n";
	}
	elsif(($qtype eq "CNAME" || $qtype eq "ANY") && $qname eq "bb.test.com") {
		print "DATA     $qname  $qclass CNAME   3600  -1      b.test.com\n";
	}
	elsif(($qtype eq "CNAME" || $qtype eq "ANY") && $qname eq "cc.test.com") {
		print "DATA     $qname  $qclass CNAME   3600  -1      c.test.com\n";
	}
	elsif(($qtype eq "CNAME" || $qtype eq "ANY") && $qname eq "dns.test.com") {
		print "DATA     $qname  $qclass CNAME   3600  -1      a.test.com\n";
	}
	elsif(($qtype eq "PTR" || $qtype eq "ANY") && $qname eq "1.3.2.1.in-addr.arpa") {
		print "DATA     $qname  $qclass PTR     3600  -1      a.test.com\n";
	}
	elsif(($qtype eq "NS" || $qtype eq "ANY") && $qname eq
"test.com") {
		print "DATA     $qname  $qclass NS      3600  -1      dns.test.com\n";
	}
	elsif(($qtype eq "MX" || $qtype eq "ANY") && $qname eq "test.com") {
		print "DATA     $qname  $qclass MX      3600  -1      5       a.test.com\n";
	}
	elsif(($qtype eq "MX" || $qtype eq "ANY") && $qname eq "test.test.com") {
		print "DATA     $qname  $qclass MX      3600 -1      5       c.test.com\n";
	}

=end example
=cut

	print STDERR "$$ End of data\n";

	print "END\n";
}



