From 3d5b87eaac5329f123ff2bf15c401c53164a9e59 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Fri, 14 Jan 2022 10:29:08 +0100 Subject: [PATCH] dnsdist: Avoid an allocation when getting the MAC address --- pdns/dnsdistdist/dnsdist-lua-ffi.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pdns/dnsdistdist/dnsdist-lua-ffi.cc b/pdns/dnsdistdist/dnsdist-lua-ffi.cc index 54c51d0e20..ab5a273ca6 100644 --- a/pdns/dnsdistdist/dnsdist-lua-ffi.cc +++ b/pdns/dnsdistdist/dnsdist-lua-ffi.cc @@ -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(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) -- 2.47.2