]>
git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/dnsdist-protobuf.cc
2 * This file is part of PowerDNS or dnsdist.
3 * Copyright -- PowerDNS.COM B.V. and its contributors
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
9 * In addition, for the avoidance of any doubt, permission is granted to
10 * link this program with OpenSSL and to (re)distribute the binaries
11 * produced as the result of such linking.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26 #include "dnsdist-protobuf.hh"
29 #include "dnsmessage.pb.h"
31 DNSDistProtoBufMessage::DNSDistProtoBufMessage(const DNSQuestion
& dq
): DNSProtoBufMessage(Query
, dq
.uniqueId
? *dq
.uniqueId
: getUniqueID(), dq
.remote
, dq
.local
, *dq
.qname
, dq
.qtype
, dq
.qclass
, dq
.dh
->id
, dq
.tcp
, dq
.len
)
33 setQueryTime(dq
.queryTime
->tv_sec
, dq
.queryTime
->tv_nsec
/ 1000);
36 DNSDistProtoBufMessage::DNSDistProtoBufMessage(const DNSResponse
& dr
, bool includeCNAME
): DNSProtoBufMessage(Response
, dr
.uniqueId
? *dr
.uniqueId
: getUniqueID(), dr
.remote
, dr
.local
, *dr
.qname
, dr
.qtype
, dr
.qclass
, dr
.dh
->id
, dr
.tcp
, dr
.len
)
38 setQueryTime(dr
.queryTime
->tv_sec
, dr
.queryTime
->tv_nsec
/ 1000);
39 setResponseCode(dr
.dh
->rcode
);
40 addRRsFromPacket((const char*) dr
.dh
, dr
.len
, includeCNAME
);
43 #endif /* HAVE_PROTOBUF */