Parcourir la source

Added makeAnswer() method to QDnsPacket

develop
Robin Thoni il y a 7 ans
Parent
révision
9053d4bf1f

+ 2
- 0
src/modules/dns-base/includes/dns-base/QDnsPacket.h Voir le fichier

@@ -31,6 +31,8 @@ namespace QDns
31 31
 
32 32
             bool isValid() const;
33 33
 
34
+            QDnsPacket makeAnswer() const;
35
+
34 36
             const QDnsHeader &getHeader() const;
35 37
 
36 38
             void setHeader(const QDnsHeader &header);

+ 14
- 0
src/modules/dns-base/src/QDnsPacket.cpp Voir le fichier

@@ -108,6 +108,20 @@ namespace QDns
108 108
             return m_isValid;
109 109
         }
110 110
 
111
+        QDnsPacket QDnsPacket::makeAnswer() const
112
+        {
113
+            auto packet = *this;
114
+            auto header = packet.getHeader();
115
+            header.setIsQuery(false);
116
+            header.setIsRecursionAvailable(false);
117
+            header.setIsAnswerAuthenticated(false);
118
+            packet.setHeader(header);
119
+            packet.m_answerRecords.clear();
120
+            packet.m_authorityRecords.clear();
121
+            packet.m_additionalRecords.clear();
122
+            return packet;
123
+        }
124
+
111 125
         const QDnsHeader &QDnsPacket::getHeader() const
112 126
         {
113 127
             return m_header;

Chargement…
Annuler
Enregistrer