# HG changeset patch # User Kim Alvefur # Date 1528551240 -7200 # Node ID eae606b9266c3de37c679b4e55912042b322f0df # Parent fcf42bd7d067c6dacddc5575a600f985fca323ce net.dns: Syntesize type names for the full range Otherwise unknown records are identified as A records. This also fixes various tracebacks unearthed by previous commits and mis-identified records. Related to #1056 #976 #819 diff -r fcf42bd7d067 -r eae606b9266c net/dns.lua --- a/net/dns.lua Sat Jun 09 15:35:03 2018 +0200 +++ b/net/dns.lua Sat Jun 09 15:34:00 2018 +0200 @@ -86,9 +86,10 @@ end -local function augment (t) -- - - - - - - - - - - - - - - - - - - - augment +local function augment (t, prefix) -- - - - - - - - - - - - - - - - - augment local a = {}; - for i,s in pairs(t) do + for i = 1, 0xffff do + local s = t[i] or ("%s%d"):format(prefix, i); a[i] = s; a[s] = s; a[string.lower(s)] = s; @@ -119,8 +120,8 @@ dns.classes = { 'IN', 'CS', 'CH', 'HS', [255] = '*' }; -dns.type = augment (dns.types); -dns.class = augment (dns.classes); +dns.type = augment (dns.types, "TYPE"); +dns.class = augment (dns.classes, "CLASS"); dns.typecode = encode (dns.types); dns.classcode = encode (dns.classes);