ソースを参照

Added makeAnswer() method to QDnsPacket

develop
Robin Thoni 6年前
コミット
9053d4bf1f
2個のファイルの変更16行の追加0行の削除
  1. 2
    0
      src/modules/dns-base/includes/dns-base/QDnsPacket.h
  2. 14
    0
      src/modules/dns-base/src/QDnsPacket.cpp

+ 2
- 0
src/modules/dns-base/includes/dns-base/QDnsPacket.h ファイルの表示

@@ -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 ファイルの表示

@@ -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;

読み込み中…
キャンセル
保存