]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Reorder fields of DNSQuestion to avoid gaps
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 2 Apr 2024 15:11:41 +0000 (17:11 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 3 Apr 2024 07:39:16 +0000 (09:39 +0200)
pdns/recursordist/lua-recursor4.hh

index 2288b17706bb0215905f454382757fc9f186b99e..263d2a9392bbac2e8ba01673dd25ab6d75cb1d4a 100644 (file)
@@ -88,18 +88,16 @@ public:
   {
     // NOLINTNEXTLINE(bugprone-easily-swappable-parameters)
     DNSQuestion(const ComboAddress& prem, const ComboAddress& ploc, const ComboAddress& rem, const ComboAddress& loc, const DNSName& query, uint16_t type, bool tcp, bool& variable_, bool& wantsRPZ_, bool& logResponse_, bool& addPaddingToResponse_, const struct timeval& queryTime_) :
-      qname(query), qtype(type), phys_local(ploc), phys_remote(prem), local(loc), remote(rem), isTcp(tcp), variable(variable_), wantsRPZ(wantsRPZ_), logResponse(logResponse_), addPaddingToResponse(addPaddingToResponse_), queryTime(queryTime_)
+      qname(query), phys_local(ploc), phys_remote(prem), local(loc), remote(rem), variable(variable_), wantsRPZ(wantsRPZ_), logResponse(logResponse_), addPaddingToResponse(addPaddingToResponse_), queryTime(queryTime_), qtype(type), isTcp(tcp)
     {
     }
     const DNSName& qname;
-    const uint16_t qtype;
     const ComboAddress& phys_local;
     const ComboAddress& phys_remote;
     const ComboAddress& local;
     const ComboAddress& remote;
     const ComboAddress* fromAuthIP{nullptr};
     const struct dnsheader* dh{nullptr};
-    const bool isTcp;
     const std::vector<pair<uint16_t, string>>* ednsOptions{nullptr};
     const uint16_t* ednsFlags{nullptr};
     vector<DNSRecord>* currentRecords{nullptr};
@@ -112,41 +110,43 @@ public:
     std::string requestorId;
     std::string deviceId;
     std::string deviceName;
-    vState validationState{vState::Indeterminate};
     bool& variable;
     bool& wantsRPZ;
     bool& logResponse;
     bool& addPaddingToResponse;
-    unsigned int tag{0};
     std::map<std::string, MetaValue> meta;
     struct timeval queryTime;
 
-    void addAnswer(uint16_t type, const std::string& content, boost::optional<int> ttl, boost::optional<string> name);
-    void addRecord(uint16_t type, const std::string& content, DNSResourceRecord::Place place, boost::optional<int> ttl, boost::optional<string> name);
-    [[nodiscard]] vector<pair<int, DNSRecord>> getRecords() const;
-    [[nodiscard]] boost::optional<dnsheader> getDH() const;
-    [[nodiscard]] vector<pair<uint16_t, string>> getEDNSOptions() const;
-    [[nodiscard]] boost::optional<string> getEDNSOption(uint16_t code) const;
-    [[nodiscard]] boost::optional<Netmask> getEDNSSubnet() const;
-    [[nodiscard]] std::vector<std::pair<int, ProxyProtocolValue>> getProxyProtocolValues() const;
-    [[nodiscard]] vector<string> getEDNSFlags() const;
-    [[nodiscard]] bool getEDNSFlag(const string& flag) const;
-    void setRecords(const vector<pair<int, DNSRecord>>& arg);
-
-    int rcode{0};
-    // struct dnsheader, packet length would be great
     vector<DNSRecord> records;
 
     string followupFunction;
     string followupPrefix;
 
     string udpQuery;
-    ComboAddress udpQueryDest;
     string udpAnswer;
     string udpCallback;
 
     LuaContext::LuaObject data;
     DNSName followupName;
+    ComboAddress udpQueryDest;
+
+    unsigned int tag{0};
+    int rcode{0};
+    const uint16_t qtype;
+    const bool isTcp;
+    vState validationState{vState::Indeterminate};
+
+    void addAnswer(uint16_t type, const std::string& content, boost::optional<int> ttl, boost::optional<string> name);
+    void addRecord(uint16_t type, const std::string& content, DNSResourceRecord::Place place, boost::optional<int> ttl, boost::optional<string> name);
+    [[nodiscard]] vector<pair<int, DNSRecord>> getRecords() const;
+    [[nodiscard]] boost::optional<dnsheader> getDH() const;
+    [[nodiscard]] vector<pair<uint16_t, string>> getEDNSOptions() const;
+    [[nodiscard]] boost::optional<string> getEDNSOption(uint16_t code) const;
+    [[nodiscard]] boost::optional<Netmask> getEDNSSubnet() const;
+    [[nodiscard]] std::vector<std::pair<int, ProxyProtocolValue>> getProxyProtocolValues() const;
+    [[nodiscard]] vector<string> getEDNSFlags() const;
+    [[nodiscard]] bool getEDNSFlag(const string& flag) const;
+    void setRecords(const vector<pair<int, DNSRecord>>& arg);
   };
 
   struct PolicyEvent