X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=djbdns%2Fdnscache.py;h=a7fc56d3abb3a67066574ca09e78acd14dd470e6;hb=ec25d9f12cd94407476a2d12c6ae31ee8ab90945;hp=ff1e4da66490aa27187710fe92168fb641259b31;hpb=4b1a04ef1f9632e4cf898cc6b7d0766f9ee3f7e7;p=djbdns-logparse.git diff --git a/djbdns/dnscache.py b/djbdns/dnscache.py index ff1e4da..a7fc56d 100644 --- a/djbdns/dnscache.py +++ b/djbdns/dnscache.py @@ -171,6 +171,39 @@ def decode_serial(words : list, i : int): words[i] = f"#{words[i]}" def decode_type(words : list, i : int): + r""" + Helper function to decode the type field in a dnscache log + entry. + + A single "type" field is present in cached, nodata, query, rr, and + tx entries. Unlike with tinydns entries, dnscache logs have + this field already in decimal, so we just look up the + corresponding name in the query type map. + + Parameters + ---------- + + words : list + A list with the "type" string at index ``i`` + + i : int + The index of the type field within ``words`` + + Returns + ------- + + Nothing; the ``i``th entry in the ``words`` list is modified + in-place. + + Examples + -------- + + >>> words = ["2", "7f000001:b848:0f0b", "16", "example.com."] + >>> decode_type(words, 2) + >>> words + ['2', '7f000001:b848:0f0b', 'txt', 'example.com.'] + + """ qt = words[i] words[i] = query_type.get(int(qt), qt)