net.dns: Support for resolving AAAA records
[prosody.git] / net / dns.lua
index c905f56c5d612565d416a2fcd85321cc64f58b7a..3f1cb4f687ffc917b53e2ca5dfadc7aba65082ca 100644 (file)
@@ -389,6 +389,14 @@ function resolver:A(rr)    -- - - - - - - - - - - - - - - - - - - - - - - -  A
        rr.a = string.format('%i.%i.%i.%i', b1, b2, b3, b4);
 end
 
+function resolver:AAAA(rr)
+       local addr = {};
+       for i = 1, rr.rdlength, 2 do
+               local b1, b2 = self:byte(2);
+               table.insert(addr, ("%02x%02x"):format(b1, b2));
+       end
+       rr.aaaa = table.concat(addr, ":");
+end
 
 function resolver:CNAME(rr)    -- - - - - - - - - - - - - - - - - - - -  CNAME
        rr.cname = self:name();
@@ -479,7 +487,7 @@ function resolver:PTR(rr)
 end
 
 function resolver:TXT(rr)    -- - - - - - - - - - - - - - - - - - - - - -  TXT
-       rr.txt = self:sub (rr.rdlength);
+       rr.txt = self:sub (self:byte());
 end