From: Remi Gacogne Date: Fri, 14 Jan 2022 09:29:08 +0000 (+0100) Subject: dnsdist: Avoid an allocation when getting the MAC address X-Git-Tag: auth-4.7.0-alpha1~31^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d5b87eaac5329f123ff2bf15c401c53164a9e59;p=thirdparty%2Fpdns.git dnsdist: Avoid an allocation when getting the MAC address --- 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)