Commit Graph

311 Commits

Author SHA1 Message Date
Miek Gieben 0c0b97f72b Parsing fix for lines starting with class or TTL
name.   IN SOA  a6.nstld.com. hostmaster.nic.name ....
              IN 7200   NS      j6.nstld.com.
              7200 IN     NS      k6.nstld.com.

Wasn't handled properly
2012-02-27 18:48:53 +01:00
Miek Gieben 89c05b4f74 gofmt 2012-02-23 19:37:08 +01:00
Miek Gieben 69cecf63bd Newline in text record 2012-02-23 19:15:06 +01:00
Miek Gieben 9c5c2ee96f Fix very large SOA/TTL values 2012-02-19 18:36:59 +01:00
Miek Gieben 71a776ddb5 Fix HIP and add ExampleHIP test function 2012-02-19 12:28:31 +01:00
Miek Gieben 88a0052d1d Fix newline/space handling and braces
( dsjkdjk
djsdjk
)

( dkjsdjsd
  djskdjsd
)

Are two different strings, the above contains NO spaces, the bottom
one does. This doesn't matter anywhere, except in HIP record, which
say some data may not contain spaces.
2012-02-19 12:04:27 +01:00
Miek Gieben 32ce3502ae add HIP here too 2012-02-19 11:27:16 +01:00
Miek Gieben bc6eca4ec4 Put this in a example test function 2012-02-17 20:37:19 +01:00
Miek Gieben 542ca8ed6d Add ref to 4592 and tests it 2012-02-15 10:28:55 +01:00
Miek Gieben d89f439689 Extra parse tests 2012-02-15 10:02:21 +01:00
Miek Gieben ef524d882a Add features to soa parsing 2012-02-15 09:04:09 +01:00
Miek Gieben 63d8b1feb1 Implement TTLs in words
1H, 1M, 1W2D, etc. should now be parsed in TTLs
2012-02-14 15:14:54 +01:00
Miek Gieben 7ef88cf5b3 Add support for @
For this to work ParseZone was extended to accept a starting
origin. This way even zonefiles without $ORIGIN would work
as expected. This is an api change.
2012-02-14 13:46:40 +01:00
Miek Gieben 3bb902e549 Add more testing 2012-02-13 21:39:27 +01:00
Miek Gieben 37ef7bd219 More TXT related fixes
Add two corner cases for testing
2012-02-13 19:08:37 +01:00
Miek Gieben 2f64868d3c Add quotes to the parsing engine.
Support:
TXT
NAPTR

And other record that we may use.
2012-02-13 13:19:37 +01:00
Miek Gieben 42efa912b5 Almost there with parsing 2012-02-12 23:00:26 +01:00
Miek Gieben a7b2a88e7a Parsing TXT records now works OK 2012-02-12 22:24:18 +01:00
Miek Gieben 6ddb9ab88b Txt record parsing works -- need to look at the on-the-wire stuff 2012-02-12 21:50:02 +01:00
Miek Gieben 5a48b54327 added quotes as important chars in the parser 2012-02-12 19:06:32 +01:00
Miek Gieben 9c478ab6e4 Add the dot in the correct place 2012-02-12 12:36:26 +01:00
Miek Gieben a21f7c6b30 Documentation updates and parsing fixes 2012-02-12 11:45:44 +01:00
Miek Gieben d7f4f61777 Clean up dead code 2012-02-12 11:16:26 +01:00
Miek Gieben 1f56983ce7 Add test for nsec-like records 2012-02-11 22:59:34 +01:00
Miek Gieben 19cef3f981 Parse SRV and PTR too 2012-02-11 17:03:09 +01:00
Miek Gieben 74181dee8e More tests 2012-01-22 20:44:52 +01:00
Miek Gieben 2718f6f23a Adapt test for new ParseZone api 2012-01-21 23:39:48 +01:00
Miek Gieben 9b48d4b899 gofmt 2012-01-12 22:49:26 +01:00
Miek Gieben a3949750be Somewhat nicer 2012-01-12 11:17:01 +01:00
Miek Gieben 374e495534 More evil records to parse 2012-01-12 10:50:01 +01:00
Miek Gieben 6d95911558 Dont allow the question section to be compressed 2012-01-11 16:16:09 +01:00
Miek Gieben bbd8c42de6 Fix the tests 2012-01-11 14:17:09 +01:00
Miek Gieben 8e1dd132a4 extra testcase 2012-01-08 21:37:37 +01:00
Miek Gieben b417c42bc2 Fix handling of dnames
Add support for escaped dots. Only thing to fix is the
fqdn-ness of user defined names.
2012-01-08 14:53:55 +01:00
Miek Gieben 0322d3a9da Fix $ORIGIN in zonefiles
also check if a dname isn't fq, and add $ORIGIN is not.
2012-01-08 14:06:58 +01:00
Miek Gieben 362e606bf2 Make ParseZone more go like 2011-12-19 19:20:55 +01:00
Miek Gieben e2b080d1b1 New time api 2011-12-18 21:01:32 +01:00
Miek Gieben 689bf97ed4 Send the last bits also 2011-12-18 18:15:09 +01:00
Miek Gieben 925d38c689 More parse tests 2011-12-18 13:56:27 +01:00
Miek Gieben 73012b7dd5 Fix braces and comments, esp for SOA records 2011-12-18 13:42:59 +01:00
Miek Gieben 15e1c0961b Make scan_rr much smaller 2011-12-18 11:22:40 +01:00
Miek Gieben e69e60c05a Evil record gets parsed correctly 2011-12-17 13:59:38 +01:00
Miek Gieben 487e600562 Fix parsing when RR ends in a brace
* Testcase added
2011-12-17 11:28:54 +01:00
Miek Gieben fc963a6a5a Add extra tests, esp braces when parsing 2011-12-17 10:16:24 +01:00
Miek Gieben a4836a77a4 Make the test fail 2011-12-16 19:43:13 +01:00
Miek Gieben 512d1dae46 Fix the reading of private key files 2011-12-16 17:32:15 +01:00
Miek Gieben a9e3ec9880 Dont include large files in the repo 2011-12-16 14:48:20 +01:00
Miek Gieben c4f46f9937 Fix the parsetesting and do some performace tests 2011-12-16 14:38:52 +01:00
Miek Gieben 235dee6a0d Fix the parse tests once more 2011-12-16 10:26:32 +01:00
Miek Gieben 06ae052c32 Implement returning errors from the scanner 2011-12-16 10:06:28 +01:00
Miek Gieben c6deba77e0 Fix the key parsing 2011-12-15 22:44:09 +01:00
Miek Gieben 35a1e137e2 More parsing fixes 2011-12-15 22:40:07 +01:00
Miek Gieben f4329cce16 More parsing tweaks 2011-12-15 18:03:41 +01:00
Miek Gieben 9168608abd More parsing fixes 2011-12-15 17:49:43 +01:00
Miek Gieben 081166db5e Fix the tests (Again) + NewRR(str)
Parse tests start to get working again
NewRR reads a string and is the easiest way to get an RR
in your code.
2011-12-15 17:37:07 +01:00
Miek Gieben 131f6962d1 gofmt 2011-12-09 21:45:57 +01:00
Miek Gieben 05eb569938 Test and fix dynamic updates
* Update to the new Go version
* Fix lot of things that need fixes

Need a why to communicate half RRs (i.e. A record without rdata)
2011-12-09 21:12:03 +01:00
Taral c1889c778d gofmt (excluding _examples) 2011-11-27 21:03:21 -08:00
Miek Gieben 406edadf20 Make the tests compile again 2011-09-10 21:22:42 +02:00
Miek Gieben 7ef1892814 Tests fails, but dont crash 2011-08-08 10:33:50 +02:00
Miek Gieben 05b7ac53dd Create qnamelist for nsec/nsec3 handling 2011-07-30 23:05:34 +02:00
Miek Gieben e016536cdc Add nsec(3) support in the core zone structure 2011-07-29 22:06:09 +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 33fbece4ca Add txt and fixup ds, ta and dlv 2011-07-29 12:18:20 +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 b2a6356596 Fix opt pseudo section stuff 2011-07-25 11:24:26 +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 da0603089a gofmt -w 2011-07-23 23:43:43 +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 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 4f6b1f7ee2 Correct the count 2011-07-22 22:07:45 +02:00
Miek Gieben c2a89d3184 Tweaks for parsing 2011-07-22 22:06:07 +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 43d51f7382 private key parsing works on files/io.Reader 2011-07-17 11:35:58 +02:00
Miek Gieben fc96e3bfc5 Some tweaks. Next up: io.Reader to string for parsing 2011-07-15 18:09:41 +02:00
Miek Gieben 77df52c2f2 priv key parsing works also 2011-07-15 17:41:26 +02:00
Miek Gieben 981f1853bc First stab at parsing .priv key files with Ragel 2011-07-15 13:40:58 +02:00
Miek Gieben 6c4045c3a0 A add bunch of rr for parsing 2011-07-14 23:12:43 +02:00
Miek Gieben 77f4205cea I can parse rrs now 2011-07-14 21:25:15 +02:00
Miek Gieben bd03eda9f4 Tweaks 2011-07-14 16:11:16 +02:00
Miek Gieben 3f9b67632a RSA priv key reading works again 2011-07-08 18:21:29 +02:00
Miek Gieben 5e18c6fb24 Very small tweaks/bugfixes 2011-03-24 15:52:37 +01:00
Miek Gieben be6f2365cb Test compile again, but fail 2011-03-23 19:03:37 +01:00
Miek Gieben 369d06f1c7 Use line.Readline() 2011-03-23 18:53:16 +01:00
Miek Gieben 3af023bda9 Use bufio.Reader in private key reading 2011-03-23 16:10:15 +01:00
Miek Gieben 65acd06370 Quotes in txt records work 2011-02-21 21:32:12 +01:00
Miek Gieben 157c19af4b Fix real dots in domain names 2011-02-21 20:56:05 +01:00
Miek Gieben c7c4d8061e Allow for escaping of dots in domainnames 2011-02-21 20:33:36 +01:00
Miek Gieben 983ccc7909 IPv6 works ago. Updated the tests 2011-02-21 18:23:39 +01:00
Miek Gieben 68e0e0b1be Set the algorithm too in the test 2011-01-18 11:34:48 +01:00
Miek Gieben 3df903d6e6 Small signing tweaks
* Get more info from the rrset your are signing
    * Still todo, calculate publickey and keytag etc.
2011-01-18 11:25:47 +01:00
Miek Gieben 96a55dee9b Less verbose tests 2011-01-17 20:29:40 +01:00
Miek Gieben 48cbf55a23 completely fix private key reading 2011-01-17 20:18:51 +01:00
Miek Gieben 1f6a221bd8 Private key completely works. Can read BIND9 files 2011-01-17 19:52:28 +01:00
Miek Gieben 74796c8672 Add SRV and NAPTR record support 2011-01-17 10:30:20 +01:00
Miek Gieben 79f61af370 Fix private Key reading (only for RSA atm) 2011-01-16 19:03:19 +01:00
Miek Gieben 2cfa45408d trying to set the pubkey from the private key 2011-01-16 18:37:29 +01:00
Miek Gieben 96457a435a Parsing .private files work - needs some cleaning up 2011-01-16 17:59:04 +01:00
Miek Gieben 317b23ceaf Parsing private key almost there 2011-01-16 17:43:41 +01:00
Miek Gieben 8ed6c8a8f4 more parsing: from private key file - not finished 2011-01-16 16:22:31 +01:00
Miek Gieben e711d80acd better name 2011-01-15 22:54:11 +01:00