From a291bc0dfaeae9f1d42672383cb64d739619c858 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Mon, 6 Jan 2020 16:59:24 +0100 Subject: [PATCH] dnsdist: Clean up FFI types --- pdns/dnsdistdist/dnsdist-lua-ffi-interface.h | 19 ++++++++++--------- pdns/dnsdistdist/dnsdist-lua-ffi.cc | 8 ++++---- pdns/dnsdistdist/dnsdist-lua-ffi.hh | 6 +++--- regression-tests.dnsdist/test_DOH.py | 4 ++-- regression-tests.dnsdist/test_EDNSOptions.py | 4 ++-- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/pdns/dnsdistdist/dnsdist-lua-ffi-interface.h b/pdns/dnsdistdist/dnsdist-lua-ffi-interface.h index daf4a50ebd..f1ae6cacdd 100644 --- a/pdns/dnsdistdist/dnsdist-lua-ffi-interface.h +++ b/pdns/dnsdistdist/dnsdist-lua-ffi-interface.h @@ -23,21 +23,22 @@ typedef struct dnsdist_ffi_dnsquestion_t dnsdist_ffi_dnsquestion_t; typedef struct dnsdist_ffi_servers_list_t dnsdist_ffi_servers_list_t; typedef struct dnsdist_ffi_server_t dnsdist_ffi_server_t; -typedef struct dnsdist_ednsoption { +typedef struct dnsdist_ffi_ednsoption { uint16_t optionCode; uint16_t len; const void* data; -} dnsdist_ednsoption_t; +} dnsdist_ffi_ednsoption_t; -typedef struct dnsdist_http_header { +typedef struct dnsdist_ffi_http_header { const char* name; const char* value; -} dnsdist_http_header_t; +} dnsdist_ffi_http_header_t; -typedef struct dnsdist_tag { +typedef struct dnsdist_ffi_tag { const char* name; const char* value; -} dnsdist_tag_t; +} dnsdist_ffi_tag_t; + void dnsdist_ffi_dnsquestion_get_localaddr(const dnsdist_ffi_dnsquestion_t* dq, const void** addr, size_t* addrSize) __attribute__ ((visibility ("default"))); uint16_t dnsdist_ffi_dnsquestion_get_local_port(const dnsdist_ffi_dnsquestion_t* dq) __attribute__ ((visibility ("default"))); @@ -70,9 +71,9 @@ const char* dnsdist_ffi_dnsquestion_get_http_host(dnsdist_ffi_dnsquestion_t* dq) const char* dnsdist_ffi_dnsquestion_get_http_scheme(dnsdist_ffi_dnsquestion_t* dq) __attribute__ ((visibility ("default"))); // returns the length of the resulting 'out' array. 'out' is not set if the length is 0 -size_t dnsdist_ffi_dnsquestion_get_edns_options(dnsdist_ffi_dnsquestion_t* ref, const dnsdist_ednsoption_t** out) __attribute__ ((visibility ("default"))); -size_t dnsdist_ffi_dnsquestion_get_http_headers(dnsdist_ffi_dnsquestion_t* ref, const dnsdist_http_header_t** out) __attribute__ ((visibility ("default"))); -size_t dnsdist_ffi_dnsquestion_get_tag_array(dnsdist_ffi_dnsquestion_t* ref, const dnsdist_tag_t** out) __attribute__ ((visibility ("default"))); +size_t dnsdist_ffi_dnsquestion_get_edns_options(dnsdist_ffi_dnsquestion_t* ref, const dnsdist_ffi_ednsoption_t** out) __attribute__ ((visibility ("default"))); +size_t dnsdist_ffi_dnsquestion_get_http_headers(dnsdist_ffi_dnsquestion_t* ref, const dnsdist_ffi_http_header_t** out) __attribute__ ((visibility ("default"))); +size_t dnsdist_ffi_dnsquestion_get_tag_array(dnsdist_ffi_dnsquestion_t* ref, const dnsdist_ffi_tag_t** out) __attribute__ ((visibility ("default"))); void dnsdist_ffi_dnsquestion_set_result(dnsdist_ffi_dnsquestion_t* dq, const char* str, size_t strSize) __attribute__ ((visibility ("default"))); void dnsdist_ffi_dnsquestion_set_rcode(dnsdist_ffi_dnsquestion_t* dq, int rcode) __attribute__ ((visibility ("default"))); diff --git a/pdns/dnsdistdist/dnsdist-lua-ffi.cc b/pdns/dnsdistdist/dnsdist-lua-ffi.cc index efb7695854..f709feaa5d 100644 --- a/pdns/dnsdistdist/dnsdist-lua-ffi.cc +++ b/pdns/dnsdistdist/dnsdist-lua-ffi.cc @@ -240,7 +240,7 @@ const char* dnsdist_ffi_dnsquestion_get_http_scheme(dnsdist_ffi_dnsquestion_t* d return nullptr; } -static void fill_edns_option(const EDNSOptionViewValue& value, dnsdist_ednsoption_t& option) +static void fill_edns_option(const EDNSOptionViewValue& value, dnsdist_ffi_ednsoption_t& option) { option.len = value.size; option.data = nullptr; @@ -251,7 +251,7 @@ static void fill_edns_option(const EDNSOptionViewValue& value, dnsdist_ednsoptio } // returns the length of the resulting 'out' array. 'out' is not set if the length is 0 -size_t dnsdist_ffi_dnsquestion_get_edns_options(dnsdist_ffi_dnsquestion_t* dq, const dnsdist_ednsoption_t** out) +size_t dnsdist_ffi_dnsquestion_get_edns_options(dnsdist_ffi_dnsquestion_t* dq, const dnsdist_ffi_ednsoption_t** out) { if (dq->dq->ednsOptions == nullptr) { parseEDNSOptions(*(dq->dq)); @@ -280,7 +280,7 @@ size_t dnsdist_ffi_dnsquestion_get_edns_options(dnsdist_ffi_dnsquestion_t* dq, c return totalCount; } -size_t dnsdist_ffi_dnsquestion_get_http_headers(dnsdist_ffi_dnsquestion_t* dq, const dnsdist_http_header_t** out) +size_t dnsdist_ffi_dnsquestion_get_http_headers(dnsdist_ffi_dnsquestion_t* dq, const dnsdist_ffi_http_header_t** out) { if (dq->dq->du == nullptr) { return 0; @@ -307,7 +307,7 @@ size_t dnsdist_ffi_dnsquestion_get_http_headers(dnsdist_ffi_dnsquestion_t* dq, c #endif } -size_t dnsdist_ffi_dnsquestion_get_tag_array(dnsdist_ffi_dnsquestion_t* dq, const dnsdist_tag_t** out) +size_t dnsdist_ffi_dnsquestion_get_tag_array(dnsdist_ffi_dnsquestion_t* dq, const dnsdist_ffi_tag_t** out) { if (dq->dq->qTag == nullptr || dq->dq->qTag->size() == 0) { return 0; diff --git a/pdns/dnsdistdist/dnsdist-lua-ffi.hh b/pdns/dnsdistdist/dnsdist-lua-ffi.hh index ca3e8d4edb..63156db080 100644 --- a/pdns/dnsdistdist/dnsdist-lua-ffi.hh +++ b/pdns/dnsdistdist/dnsdist-lua-ffi.hh @@ -46,9 +46,9 @@ struct dnsdist_ffi_dnsquestion_t } DNSQuestion* dq{nullptr}; - std::vector ednsOptionsVect; - std::vector httpHeadersVect; - std::vector tagsVect; + std::vector ednsOptionsVect; + std::vector httpHeadersVect; + std::vector tagsVect; std::unordered_map httpHeaders; std::string trailingData; ComboAddress maskedRemote; diff --git a/regression-tests.dnsdist/test_DOH.py b/regression-tests.dnsdist/test_DOH.py index eb4b1cfcbf..d8041a72d7 100644 --- a/regression-tests.dnsdist/test_DOH.py +++ b/regression-tests.dnsdist/test_DOH.py @@ -907,8 +907,8 @@ class TestDOHFFI(DNSDistDOHTest): local query_string = ffi.string(ffi.C.dnsdist_ffi_dnsquestion_get_http_query_string(dq)) if scheme == 'https' and host == '%s:%d' and path == '/' and query_string == '' then local foundct = false - local headers_ptr = ffi.new("const dnsdist_http_header_t *[1]") - local headers_ptr_param = ffi.cast("const dnsdist_http_header_t **", headers_ptr) + local headers_ptr = ffi.new("const dnsdist_ffi_http_header_t *[1]") + local headers_ptr_param = ffi.cast("const dnsdist_ffi_http_header_t **", headers_ptr) local headers_count = tonumber(ffi.C.dnsdist_ffi_dnsquestion_get_http_headers(dq, headers_ptr_param)) if headers_count > 0 then diff --git a/regression-tests.dnsdist/test_EDNSOptions.py b/regression-tests.dnsdist/test_EDNSOptions.py index 7b1c8bbeff..f1e386e825 100644 --- a/regression-tests.dnsdist/test_EDNSOptions.py +++ b/regression-tests.dnsdist/test_EDNSOptions.py @@ -391,8 +391,8 @@ class TestEDNSOptionsLuaFFI(DNSDistTest): local ffi = require("ffi") function testEDNSOptions(dq) - local options_ptr = ffi.new("const dnsdist_ednsoption_t *[1]") - local ret_ptr_param = ffi.cast("const dnsdist_ednsoption_t **", options_ptr) + local options_ptr = ffi.new("const dnsdist_ffi_ednsoption_t *[1]") + local ret_ptr_param = ffi.cast("const dnsdist_ffi_ednsoption_t **", options_ptr) local options_count = tonumber(ffi.C.dnsdist_ffi_dnsquestion_get_edns_options(dq, ret_ptr_param)) -- 2.39.2