]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - pdns/dnsdist-protobuf.cc
Merge pull request #8223 from PowerDNS/omoerbeek-patch-1
[thirdparty/pdns.git] / pdns / dnsdist-protobuf.cc
index a399a38c79a79ae61dcb848cea6eaedbb8e0c3a6..fcf2fd6508b02efb7039aec57ec76d0455ed2cb1 100644 (file)
 #include "config.h"
 
 #include "dnsdist.hh"
-#include "gettime.hh"
 
-#include "dnsparser.hh"
 #include "dnsdist-protobuf.hh"
 
 #ifdef HAVE_PROTOBUF
 #include "dnsmessage.pb.h"
 
-DNSDistProtoBufMessage::DNSDistProtoBufMessage(DNSProtoBufMessageType type, const DNSQuestion& dq): DNSProtoBufMessage(type, dq.uniqueId, dq.remote, dq.local, *dq.qname, dq.qtype, dq.qclass, dq.dh->id, dq.tcp, dq.len)
+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)
 {
-  if (type == Response) {
-    PBDNSMessage_DNSResponse* response = d_message.mutable_response();
-    if (response) {
-      response->set_rcode(dq.dh->rcode);
-    }
-    addRRsFromPacket((const char*) dq.dh, dq.len);
-  }
+  setQueryTime(dq.queryTime->tv_sec, dq.queryTime->tv_nsec / 1000);
 };
 
-DNSDistProtoBufMessage::DNSDistProtoBufMessage(const DNSResponse& dr): DNSProtoBufMessage(Response, dr.uniqueId, dr.remote, dr.local, *dr.qname, dr.qtype, dr.qclass, dr.dh->id, dr.tcp, dr.len)
+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)
 {
   setQueryTime(dr.queryTime->tv_sec, dr.queryTime->tv_nsec / 1000);
   setResponseCode(dr.dh->rcode);
-  addRRsFromPacket((const char*) dr.dh, dr.len);
+  addRRsFromPacket((const char*) dr.dh, dr.len, includeCNAME);
 };
 
 #endif /* HAVE_PROTOBUF */