Browse Source

[2094] (unrelated fix) NAPTR replacement shouldn't be compressed per RFC3597.

JINMEI Tatuya 12 years ago
parent
commit
5e84742d02
2 changed files with 5 additions and 2 deletions
  1. 5 0
      src/lib/dns/rdata/generic/naptr_35.cc
  2. 0 2
      src/lib/dns/rdata/generic/naptr_35.h

+ 5 - 0
src/lib/dns/rdata/generic/naptr_35.cc

@@ -125,11 +125,16 @@ NAPTR::NAPTR(const NAPTR& naptr):
 void
 void
 NAPTR::toWire(OutputBuffer& buffer) const {
 NAPTR::toWire(OutputBuffer& buffer) const {
     toWireHelper(buffer);
     toWireHelper(buffer);
+    replacement_.toWire(buffer);
+
 }
 }
 
 
 void
 void
 NAPTR::toWire(AbstractMessageRenderer& renderer) const {
 NAPTR::toWire(AbstractMessageRenderer& renderer) const {
     toWireHelper(renderer);
     toWireHelper(renderer);
+    // Type NAPTR is not "well-known", and name compression must be disabled
+    // per RFC3597.
+    renderer.writeName(replacement_, false);
 }
 }
 
 
 string
 string

+ 0 - 2
src/lib/dns/rdata/generic/naptr_35.h

@@ -62,8 +62,6 @@ private:
 
 
         outputer.writeUint8(regexp_.size());
         outputer.writeUint8(regexp_.size());
         outputer.writeData(regexp_.c_str(), regexp_.size());
         outputer.writeData(regexp_.c_str(), regexp_.size());
-
-        replacement_.toWire(outputer);
     }
     }
 
 
     uint16_t order_;
     uint16_t order_;