diff --git a/examples/fp/README.mkd b/examples/fp/README.mkd index ed95af8c..783200c3 100644 --- a/examples/fp/README.mkd +++ b/examples/fp/README.mkd @@ -43,6 +43,8 @@ It has 20 fields, which are: 9. UDP bufsize, set to 4097; 9. NSID, uppercase: request NSID (or NSID was set). +If `DO` is not set, the UDP bufsize and NSID aren't used. + These fingerprints are also used in *creating* the DNS queries that are send to nameserver(s) being tested. diff --git a/examples/fp/data/q b/examples/fp/data/q index 1738bfc3..fc14f63d 100644 --- a/examples/fp/data/q +++ b/examples/fp/data/q @@ -2,6 +2,37 @@ # # The order is important, as the data files of the known nameservers are compared # in this order. +# explain .,CH,TXT,QUERY,NOERROR,qr,aa,tc,RD,ra,ad,cd,z,1,0,0,0,DO,4097,NSID +# explain +.,CH,TXT,QUERY,NOERROR,qr,aa,tc,RD,ra,ad,cd,z,1,0,0,0,DO,65535,NSID +# explain +.,IN,TXT,QUERY,NOERROR,qr,aa,tc,RD,ra,ad,cd,z,1,0,0,0,DO,128,NSID +.,IN,TXT,QUERY,NOERROR,qr,aa,tc,RD,ra,ad,cd,z,1,0,0,0,DO,127,NSID +# explain +.,CH,TXT,UPDATE,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,do,0,nsid +.,CH,TXT,UPDATE,BADTRUNC,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,do,0,nsid +# explain +.,IN,TXT,IQUERY,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,do,0,nsid +.,IN,TXT,QUERY,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,DO,128,nsid +.,IN,TXT,QUERY,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,DO,128,nsid +# explain +.,IN,TXT,STATUS,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,do,0,nsid +# explain +.,CS,TXT,IQUERY,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,do,0,nsid +# explain +.,HS,TXT,IQUERY,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,do,0,nsid +# explain +.,CH,TXT,IQUERY,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,do,0,nsid +# explain +.,CLASS65535,TYPE65535,QUERY,NOERROR,qr,AA,tc,RD,ra,ad,cd,z,1,0,0,0,do,0,nsid +# explain auThoRs.bInD.,CH,TXT,QUERY,NOERROR,qr,aa,tc,rd,ra,ad,cd,z,1,0,0,0,do,0,nsid +# explain bind.,NONE,SOA,NOTIFY,NOERROR,qr,AA,tc,RD,ra,ad,cd,Z,1,0,0,0,do,0,nsid +# explain +.,CH,TXT,QUERY,NOERROR,qr,AA,TC,RD,RA,AD,CD,Z,1,0,0,0,do,0,nsid +# explain +.,CH,TXT,QUERY,NOERROR,QR,AA,TC,RD,RA,AD,CD,Z,1,0,0,0,do,0,nsid +id.server.,CH,TXT,QUERY,NOERROR,qr,aa,tc,rd,ra,ad,cd,z,1,0,0,0,do,0,nsid +version.server.,CH,TXT,QUERY,NOERROR,qr,aa,tc,rd,ra,ad,cd,z,1,0,0,0,do,0,nsid diff --git a/examples/fp/fp.go b/examples/fp/fp.go index f138a215..14327711 100644 --- a/examples/fp/fp.go +++ b/examples/fp/fp.go @@ -357,7 +357,8 @@ func fingerPrintFromFile(f string) ([]*fingerprint, error) { if p { return nil, nil } - if l[0] != '#' { + // Comments and empty lines are ignored + if l[0] != '#' && l[0] != '\n' { prints = append(prints, newFingerprint(string(l))) } l, p, e = b.ReadLine() diff --git a/msg.go b/msg.go index 03d58bbe..f629af98 100644 --- a/msg.go +++ b/msg.go @@ -170,6 +170,13 @@ var Rcode_str = map[int]string{ RcodeNXRrset: "NXRRSET", RcodeNotAuth: "NOTAUTH", RcodeNotZone: "NOTZONE", + RcodeBadSig: "BADSIG", + RcodeBadKey: "BADKEY", + RcodeBadTime: "BADTIME", + RcodeBadMode: "BADMODE", + RcodeBadName: "BADNAME", + RcodeBadAlg: "BADALG", + RcodeBadTrunc: "BADTRUNC", } // Rather than write the usual handful of routines to pack and