Browse Source

[trac488] two minor fixes

make sure cur_zone_ is (re)initialized to ".", and off-by-one in glue selector
Jelte Jansen 14 years ago
parent
commit
1b24dfdd07
2 changed files with 3 additions and 2 deletions
  1. 1 1
      src/lib/nsas/glue_hints.cc
  2. 2 1
      src/lib/resolve/recursive_query.cc

+ 1 - 1
src/lib/nsas/glue_hints.cc

@@ -150,7 +150,7 @@ GlueHints::getGlue(AddressFamily family) const {
     long int selection = random() % max;
 
     if (family == ANY_OK) {
-        if (selection <= v4s) {
+        if (selection < v4s) {
             return addresses_v4[selection];
         } else {
             return addresses_v6[selection-v4s];

+ 2 - 1
src/lib/resolve/recursive_query.cc

@@ -201,6 +201,7 @@ private:
     // if we have a response for our query stored already. if
     // so, call handlerecursiveresponse(), if not, we call send()
     void doLookup() {
+        cur_zone_ = ".";
         dlog("doLookup: try cache");
         Message cached_message(Message::RENDER);
         isc::resolve::initResponseMessage(question_, cached_message);
@@ -216,7 +217,6 @@ private:
                 stop();
             }
         } else {
-            cur_zone_ = ".";
             send();
         }
         
@@ -436,6 +436,7 @@ public:
         callback_called_(false),
         nsas_(nsas),
         cache_(cache),
+        cur_zone_("."),
         nsas_callback_(boost::shared_ptr<ResolverNSASCallback>(
                                      new ResolverNSASCallback(this))),
         nsas_callback_out_(false),