]> git.ipfire.org Git - thirdparty/pdns.git/blame - modules/pipebackend/backend-v3.pl
Check if -latomic is needed instead of hardcoding
[thirdparty/pdns.git] / modules / pipebackend / backend-v3.pl
CommitLineData
f674c49e 1#!/usr/bin/perl -w
0a05cd8e 2# sample PowerDNS Coprocess backend with edns-client-subnet support
f674c49e
BH
3#
4
5use strict;
6
7
8$|=1; # no buffering
9
10my $line=<>;
11chomp($line);
12
13unless($line eq "HELO\t3" ) {
14 print "FAIL\n";
15 print STDERR "Received unexpected '$line', wrong ABI version?\n";
16 <>;
17 exit;
18}
19print "OK Sample backend firing up\n"; # print our banner
20
21while(<>)
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