]>
Commit | Line | Data |
---|---|---|
f674c49e | 1 | #!/usr/bin/perl -w |
0a05cd8e | 2 | # sample PowerDNS Coprocess backend with edns-client-subnet support |
f674c49e BH |
3 | # |
4 | ||
5 | use strict; | |
6 | ||
7 | ||
8 | $|=1; # no buffering | |
9 | ||
10 | my $line=<>; | |
11 | chomp($line); | |
12 | ||
13 | unless($line eq "HELO\t3" ) { | |
14 | print "FAIL\n"; | |
15 | print STDERR "Received unexpected '$line', wrong ABI version?\n"; | |
16 | <>; | |
17 | exit; | |
18 | } | |
19 | print "OK Sample backend firing up\n"; # print our banner | |
20 | ||
21 | while(<>) | |
22 | { | |
23 | print STDERR "$$ Received: $_"; | |
24 | chomp(); | |
25 | my @arr=split(/\t/); | |
52c2caa6 | 26 | if(@arr < 8) { |
f674c49e BH |
27 | print "LOG PowerDNS sent unparseable line\n"; |
28 | print "FAIL\n"; | |
29 | next; | |
30 | } | |
31 | ||
52c2caa6 | 32 | my ($type,$qname,$qclass,$qtype,$id,$ip,$localip,$ednsip)=split(/\t/); |
f674c49e | 33 | my $bits=21; |
42f1cf3e | 34 | my $auth = 1; |
f674c49e BH |
35 | |
36 | if(($qtype eq "SOA" || $qtype eq "ANY") && $qname eq "example.com") { | |
37 | print STDERR "$$ Sent SOA records\n"; | |
42f1cf3e | 38 | print "DATA $bits $auth $qname $qclass SOA 3600 -1 ahu.example.com ns1.example.com 2008080300 1800 3600 604800 3600\n"; |
f674c49e BH |
39 | } |
40 | if(($qtype eq "NS" || $qtype eq "ANY") && $qname eq "example.com") { | |
41 | print STDERR "$$ Sent NS records\n"; | |
42f1cf3e BH |
42 | print "DATA $bits $auth $qname $qclass NS 3600 -1 ns1.example.com\n"; |
43 | print "DATA $bits $auth $qname $qclass NS 3600 -1 ns2.example.com\n"; | |
f674c49e BH |
44 | } |
45 | if(($qtype eq "TXT" || $qtype eq "ANY") && $qname eq "example.com") { | |
3bade47a | 46 | print STDERR "$$ Sent TXT records\n"; |
42f1cf3e | 47 | print "DATA $bits $auth $qname $qclass TXT 3600 -1 \"hallo allemaal!\"\n"; |
f674c49e BH |
48 | } |
49 | if(($qtype eq "A" || $qtype eq "ANY") && $qname eq "webserver.example.com") { | |
50 | print STDERR "$$ Sent A records\n"; | |
42f1cf3e BH |
51 | print "DATA $bits $auth $qname $qclass A 3600 -1 1.2.3.4\n"; |
52 | print "DATA $bits $auth $qname $qclass A 3600 -1 1.2.3.5\n"; | |
53 | print "DATA $bits $auth $qname $qclass A 3600 -1 1.2.3.6\n"; | |
f674c49e | 54 | } |
3bade47a | 55 | if(($qtype eq "CNAME" || $qtype eq "ANY") && $qname eq "www.example.com") { |
f674c49e | 56 | print STDERR "$$ Sent CNAME records\n"; |
42f1cf3e | 57 | print "DATA $bits $auth $qname $qclass CNAME 3600 -1 webserver.example.com\n"; |
f674c49e | 58 | } |
3bade47a BH |
59 | if(($qtype eq "MX" || $qtype eq "ANY") && $qname eq "example.com") { |
60 | print STDERR "$$ Sent MX records\n"; | |
61 | print "DATA $bits $auth $qname $qclass MX 3600 -1 25 smtp.powerdns.com\n"; | |
f674c49e BH |
62 | } |
63 | ||
64 | ||
65 | print STDERR "$$ End of data\n"; | |
66 | print "END\n"; | |
67 | } | |
68 |