Commit Graph

56 Commits

Author SHA1 Message Date
Miek Gieben 2d9e619c01 Upgrade to r59 of Go this means parsing is broken now
Ragel does not support newer versions of Go. But I do want to
upgrade to them. So parsing from strings has been disabled and
will be re-enabled when Ragel 7 is out
2011-08-02 09:06:15 +02:00
Miek Gieben e162e9bfb1 Use *Zone instead of Zone 2011-07-29 21:37:58 +02:00
Miek Gieben be10e40045 Fix Pop()
Need to check which of the rrs, rrsigs of nxt is actually filled
with the data and pop that.
2011-07-29 13:16:27 +02:00
Miek Gieben eb3a40f5aa kill atoi and just use the strconv.Atoui directly 2011-07-29 12:18:49 +02:00
Miek Gieben 33fbece4ca Add txt and fixup ds, ta and dlv 2011-07-29 12:18:20 +02:00
Miek Gieben 5df752fef7 Smaller tweaks 2011-07-28 23:39:31 +02:00
Miek Gieben caa1502c1e Add much more complex zone structure
A zone is stored in a
map[string]map[int]*ZRRset

where string is the qname and int (in the second map) is
qclass * <large number> + qtype, thereby making it unique.

ZRRset holds:
    RRs     RRset
    RRsigs  RRset
    Nsec    RR
    Nsec3   RR
    Glue    bool

Which holds the RRset for the zone contents. This is grouped
together for DNSSEC purposes, but also helps in non-DNSSEC zones.
(There is of course a increase in memory usage).
2011-07-28 22:47:55 +02:00
Miek Gieben 96ddebf335 add miek.nl.signed as a test zone
Add support for more RRs - I can now parse my own zone
2011-07-24 22:21:48 +02:00
Miek Gieben fc2516e3f4 Error handling for DNSKEY 2011-07-24 22:01:10 +02:00
Miek Gieben 282feff62e add NSEC3PARAM 2011-07-24 21:40:04 +02:00
Miek Gieben 00f8254ae1 Fix parsing of RRSIGs 2011-07-24 21:29:16 +02:00
Miek Gieben c52f05f9f5 More error checking 2011-07-24 17:32:41 +02:00
Miek Gieben 4671072027 Error handling
Handle semantic errors in the input stream.
Try to use Ragel's error handling when seeing a non-supported
class. This does not work yet.
2011-07-24 17:08:33 +02:00
Miek Gieben f38060d359 Use smaller buffer again 2011-07-24 13:54:34 +02:00
Miek Gieben da0603089a gofmt -w 2011-07-23 23:43:43 +02:00
Miek Gieben 9b1e7b4b3d documentation
make Str_rr and Str_class private, prolly only needed
for parsing
2011-07-23 23:15:40 +02:00
Miek Gieben 0dcfa0b427 Kill SetString
Create a NewRR that creates a new RR from a string.
FIx the tests to relfect this
2011-07-23 22:26:50 +02:00
Miek Gieben 92291b1575 Documentation and some small tweaks 2011-07-23 08:59:58 +02:00
Miek Gieben 3eae3d90e7 Small optimizations, down to 1.29s for 50K RRs 2011-07-22 23:57:56 +02:00
Miek Gieben a1a0034733 More Go like
Make a Parser type and define methods on that.
* Zone()    parse and return entire zone
* RR()      parse and return 1 RR
* PrivateKey parse a private key file
2011-07-22 23:51:30 +02:00
Miek Gieben 2a8d7f9694 Make the API more Go like 2011-07-22 23:28:04 +02:00
Miek Gieben db5b40c000 Reset _IOBUF 2011-07-22 22:16:56 +02:00
Miek Gieben c2a89d3184 Tweaks for parsing 2011-07-22 22:06:07 +02:00
Miek Gieben b03994e257 NSEC and NSEC3 parsing support
Needs some work, but it is working
2011-07-22 20:23:36 +02:00
Miek Gieben 412a3a3f3e update readme 2011-07-22 19:39:36 +02:00
Miek Gieben d574e43c00 Do more setstring work 2011-07-22 19:23:06 +02:00
Miek Gieben cfba61fdf9 Move around some debugging code 2011-07-22 18:50:47 +02:00
Miek Gieben fa6e603134 add ds/dnskey/rrsig and fix 1-line comments 2011-07-22 17:29:56 +02:00
Miek Gieben 725fb45591 Parse the test zone from Jan Mercl 2011-07-22 12:49:03 +02:00
Miek Gieben 6b53a030c2 Some tweaks and a clear view on the todo 2011-07-22 12:31:39 +02:00
Miek Gieben e87fb8209f FINALLY looks like something thats is fast and simple 2011-07-22 12:26:31 +02:00
Miek Gieben 108e795378 Some tweaks; not sure if this is the way forward 2011-07-21 16:43:18 +02:00
Miek Gieben dcbd332a69 Put back in support for DNSSEC records 2011-07-21 14:50:47 +02:00
Miek Gieben 021d0e8842 smaller stuff 2011-07-21 14:35:20 +02:00
Miek Gieben 5fe15bc754 gone 2011-07-21 14:31:48 +02:00
Miek Gieben e863e86e65 This works, but is too slow 2011-07-21 12:31:47 +02:00
Miek Gieben 802b8cd9c9 This parses - now make it quick 2011-07-20 21:19:40 +02:00
Miek Gieben 125cc44dca add generated code too 2011-07-19 18:40:27 +02:00
Miek Gieben c8975950bd Peeked some parser stuff from gdnsd 2011-07-19 17:49:51 +02:00
Miek Gieben b13a2d6ad9 less type assertions
From cznic:
Let me suggest something like:

x := rr.(*RR_SOA)
x.Hdr = *hdr
x.Ns = tok.T[0]
...

to avoid repeated type assertion - unnecessary for the still same 'rr'.
2011-07-19 13:48:32 +02:00
Miek Gieben 7c716e66c0 Parsing zone files - does not work (yet) 2011-07-18 20:47:03 +02:00
Miek Gieben e50100848c Fix parsing of AAAA records 2011-07-18 17:40:55 +02:00
Miek Gieben e1bd7db73b More parsing tweaks 2011-07-18 16:06:06 +02:00
Miek Gieben 91b41d02bb SetString for DNSKEY and RRSIG 2011-07-18 15:49:20 +02:00
Miek Gieben 2eecc66477 SetString() for a bunch of RR - to be extended 2011-07-18 15:19:47 +02:00
Miek Gieben fd0064c805 Parsings works - clean up the tests
RR_DNSKEY has now a
* Read (to read an RR)
* ReadPrivateKey (to read an private key file)

Together you have enough data to sign and verify DNSSEC data.
I'm thinking about a better API, but I think one will emerge
whenever I complete the zone parsin.
2011-07-17 20:51:27 +02:00
Miek Gieben 8c595abe56 More parsing stuff 2011-07-17 15:47:03 +02:00
Miek Gieben 981f1853bc First stab at parsing .priv key files with Ragel 2011-07-15 13:40:58 +02:00
Miek Gieben f759f6f8d9 Add DNSSEC parsing 2011-07-14 23:55:06 +02:00
Miek Gieben 6c4045c3a0 A add bunch of rr for parsing 2011-07-14 23:12:43 +02:00