Browse Source

[trac697] address review comments

Jelte Jansen 14 years ago
parent
commit
c34be1b6a6
1 changed files with 14 additions and 9 deletions
  1. 14 9
      src/lib/resolve/tests/recursive_query_unittest_2.cc

+ 14 - 9
src/lib/resolve/tests/recursive_query_unittest_2.cc

@@ -101,13 +101,13 @@ public:
     /// Set before the query and then by each "server" when responding.
     enum QueryStatus {
         NONE = 0,                   ///< Default
-        UDP_ROOT,                   ///< Query root server over UDP
-        UDP_ORG,                    ///< Query ORG server over UDP
-        TCP_ORG,                    ///< Query ORG server over TCP
-        UDP_EXAMPLE_ORG_BAD,        ///< Query EXAMPLE.ORG server over UDP
+        UDP_ROOT = 1,               ///< Query root server over UDP
+        UDP_ORG = 2,                ///< Query ORG server over UDP
+        TCP_ORG = 3,                ///< Query ORG server over TCP
+        UDP_EXAMPLE_ORG_BAD = 4,    ///< Query EXAMPLE.ORG server over UDP
                                     ///< (return malformed packet)
-        UDP_EXAMPLE_ORG,            ///< Query EXAMPLE.ORG server over UDP
-        COMPLETE                    ///< Query is complete
+        UDP_EXAMPLE_ORG = 5,        ///< Query EXAMPLE.ORG server over UDP
+        COMPLETE = 6                ///< Query is complete
     };
 
     // Common stuff
@@ -287,6 +287,10 @@ public:
         Message msg(Message::RENDER);
         setCommonMessage(msg, qid);
 
+        // In the case of UDP_EXAMPLE_ORG_BAD, we shall mangle the
+        // response
+        bool mangle_response = false;
+
         // Set up state-dependent bits:
         switch (expected_) {
         case UDP_ROOT:
@@ -310,7 +314,9 @@ public:
          case UDP_EXAMPLE_ORG_BAD:
             // Return the answer to the question.
             setAnswerWwwExampleOrg(msg);
-            // Set new expected in check below
+            // Mangle the response to enfore another query
+            mangle_response = true;
+            expected_ = UDP_EXAMPLE_ORG;
             break;
 
          case UDP_EXAMPLE_ORG:
@@ -328,11 +334,10 @@ public:
         MessageRenderer renderer(*udp_send_buffer_);
         msg.toWire(renderer);
 
-        if (expected_ == UDP_EXAMPLE_ORG_BAD) {
+        if (mangle_response) {
             // mangle the packet a bit
             // set additional to one more
             udp_send_buffer_->writeUint8At(3, 11);
-            expected_ = UDP_EXAMPLE_ORG;
         }
 
         // Return a message back to the IOFetch object (after setting the