]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: In remote logger, payload size should be 16 bits, not 32
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 24 Mar 2016 09:12:19 +0000 (10:12 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 24 Mar 2016 09:12:19 +0000 (10:12 +0100)
pdns/dnsdist-remotelogger.cc

index b8710bd68a8a098a6dacfc6ad87c4c1941140947..9afd9b9f027d4f6c68e11551383ef6cdbdb58042 100644 (file)
@@ -69,7 +69,8 @@ void RemoteLogger::worker()
     }
 
     try {
-      uint32_t len = htonl(data.length());
+      uint16_t len = data.length();
+      len = htons(len);
       writen2WithTimeout(d_socket, &len, sizeof(len), (int) d_timeout);
       writen2WithTimeout(d_socket, data.c_str(), data.length(), (int) d_timeout);
     }
@@ -242,10 +243,9 @@ void RemoteLogger::logResponse(const DNSQuestion& dr)
 
   PBDNSMessage_DNSResponse response;
   response.set_rcode(dr.dh->rcode);
-
+  addRRs((const char*) dr.dh, dr.len, response);
   message.set_allocated_response(&response);
 
-  addRRs((const char*) dr.dh, dr.len, response);
 
   //cerr <<message.DebugString()<<endl;
   std::string str;