Commit Graph

52 Commits

Author SHA1 Message Date
Miek Gieben e162e9bfb1 Use *Zone instead of Zone 2011-07-29 21:37:58 +02:00
Miek Gieben eb3a40f5aa kill atoi and just use the strconv.Atoui directly 2011-07-29 12:18:49 +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 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 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 dca86ec149 Documentation 2011-07-23 08:54:44 +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 ab6e700ce1 comments 2011-07-22 19:35:11 +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 e0cc303084 ITS WORKING!!!11!!
Parsing looks to be working with using Ragal as a lexer.
Comments aren't handled, everything should be on 1 line...
But.. we have a nice start here IMO.
2011-07-21 14:33:17 +02:00
Miek Gieben c5e26c4313 dont delete it 2011-07-21 14:32:02 +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 0b8c7e2314 cleanups 2011-07-19 18:35:08 +02:00
Miek Gieben c8975950bd Peeked some parser stuff from gdnsd 2011-07-19 17:49:51 +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
Miek Gieben b676307226 Now it works even better 2011-07-14 21:31:59 +02:00
Miek Gieben 1ebb704fe4 Now it works even better 2011-07-14 21:31:03 +02:00
Miek Gieben 77f4205cea I can parse rrs now 2011-07-14 21:25:15 +02:00
Miek Gieben ff351f2cf7 Works, stop touching it 2011-07-14 21:14:55 +02:00
Miek Gieben bd03eda9f4 Tweaks 2011-07-14 16:11:16 +02:00
Miek Gieben 9c9e5e3600 It compiles! Ship it! 2011-07-14 16:02:26 +02:00
Miek Gieben 023d3ce3f8 Add generated parser so that people without Ragel can use it 2011-07-14 15:59:04 +02:00