]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Avoid an allocation when getting the MAC address 11173/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 14 Jan 2022 09:29:08 +0000 (10:29 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 14 Jan 2022 09:29:08 +0000 (10:29 +0100)
pdns/dnsdistdist/dnsdist-lua-ffi.cc

index 54c51d0e203ecc3cc2ecb28ab3131d3f9e3f7f62..ab5a273ca64c46689392bcb31f42fb747ebc06c1 100644 (file)
@@ -62,15 +62,13 @@ size_t dnsdist_ffi_dnsquestion_get_mac_addr(const dnsdist_ffi_dnsquestion_t* dq,
   if (dq == nullptr) {
     return 0;
   }
-  std::string mac = getMACAddress(*dq->dq->remote);
-  if (mac.empty()) {
+
+  auto ret = getMACAddress(*dq->dq->remote, reinterpret_cast<char*>(buffer), bufferSize);
+  if (ret != 0) {
     return 0;
   }
-  if (mac.size() > bufferSize) {
-    return bufferSize;
-  }
-  memcpy(buffer, mac.data(), mac.size());
-  return mac.size();
+
+  return 6;
 }
 
 void dnsdist_ffi_dnsquestion_get_masked_remoteaddr(dnsdist_ffi_dnsquestion_t* dq, const void** addr, size_t* addrSize, uint8_t bits)