Commit Graph

395 Commits

Author SHA1 Message Date
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 37ef7bd219 More TXT related fixes
Add two corner cases for testing
2012-02-13 19:08:37 +01:00
Miek Gieben d235bf4c2e Remove debugging stuff 2012-02-13 16:18:42 +01:00
Miek Gieben c30821fece Fix TXT packing and unpacking 2012-02-13 16:12:26 +01:00
Miek Gieben 2c44133163 Fixes for the new presentation of txt records 2012-02-13 15:59:40 +01:00
Miek Gieben 77b60231e7 If we add a dot to a name, be sure to remove one from the length 2012-02-05 11:33:55 +01:00
Miek Gieben b639fa305d Fix overflow when the buffer is really small 2012-01-29 19:11:55 +01:00
Miek Gieben 402ce277df add the strings for these rcodes too 2012-01-29 18:55:49 +01:00
Miek Gieben 09ac6c8dc5 gofmt 2012-01-28 00:35:37 +01:00
Miek Gieben bc2b826f38 Remove udpsize from ListenAndServer, too ugly 2012-01-27 08:45:33 +01:00
Miek Gieben 784713d0e0 Docs 2012-01-26 22:52:29 +01:00
Miek Gieben 4f588a5d15 documentation 2012-01-26 22:46:59 +01:00
Miek Gieben 04cbdae47a Fix DS overflow when unpacking 2012-01-23 20:29:47 +01:00
Miek Gieben 7b67cbff49 Set the timeouts throughout the code. New Golang api 2012-01-23 20:25:15 +01:00
Miek Gieben 6e6b67afd5 Fix NSEC(3) with no bitmap 2012-01-23 11:30:26 +01:00
Miek Gieben 67573c14b3 Implement NSEC3 NODATA proof 2012-01-22 11:33:51 +01:00
Miek Gieben f25584e94e Overflow fixes 2012-01-21 12:35:19 +01:00
Miek Gieben 5917838cbb gofmt 2012-01-20 12:24:20 +01:00
Miek Gieben ea789b6f23 Add nsec3 NXDOMAIN proof 2012-01-19 19:48:09 +01:00
Miek Gieben 7bffcd35bb Start with nsec3 validation 2012-01-17 19:16:58 +01:00
Miek Gieben c0af79d3b3 slightly better documentation 2012-01-16 21:57:57 +01:00
Miek Gieben 240879c40d Documentation 2012-01-16 21:49:17 +01:00
Miek Gieben 9f3a1c1f13 Documentation and make ParseKey private (parseKey) 2012-01-16 21:44:49 +01:00
Miek Gieben 96d79c6816 Fix NSEC3/NSEC parsing. Looks much saner now 2012-01-16 13:45:45 +01:00
Miek Gieben 1ae8cb4101 Check nsec unpacking 2012-01-15 20:46:11 +01:00
Miek Gieben b4bf6278de Remove println 2012-01-15 17:18:44 +01:00
Miek Gieben 06fdc07772 Fix nsec3 decoding 2012-01-15 17:18:02 +01:00
Miek Gieben 0dcb849ca2 Fix NSEC3 encoding 2012-01-15 13:53:32 +01:00
Miek Gieben e76189c8f7 NSEC3 working for types < 256 2012-01-15 13:20:53 +01:00
Miek Gieben dc6c6d7c9e NSEC3 is starting to work 2012-01-15 12:15:05 +01:00
Miek Gieben 03a8ee13a2 NSEC3 encoding works
Only for 1 windows, but dig has stopped complaining. This
needs to be streamlined a little, but its looking good.
2012-01-14 11:08:42 +01:00
Miek Gieben 7f6a5f4497 Its isnt slow 2012-01-12 21:32:50 +01:00
Miek Gieben 7ddb5feb69 RawRdlength seems to work; 2012-01-12 21:10:29 +01:00
Miek Gieben 036d6e4c2c Fix edns0 overflow message 2012-01-12 20:22:21 +01:00
Miek Gieben 92a51b4374 Who wrote what 2012-01-12 10:53:19 +01:00
Miek Gieben 2543321215 Fix the packing failure
non-fqdn don't generate an packing failure. Need to do something
about this. Maybe not returning a bool from pack, but a real Error
2012-01-11 21:19:46 +01:00
Miek Gieben eb12c526f2 Add more tests 2012-01-11 21:03:47 +01:00
Miek Gieben 3886728bdb Add debug prints back in msg.go 2012-01-11 20:50:08 +01:00
Miek Gieben 416eb764c7 Much better message length 2012-01-11 20:37:26 +01:00
Miek Gieben f1a3b31384 Make a packStructCompress() to leave packStruct() simpler 2012-01-11 20:33:38 +01:00
Miek Gieben eafe995a56 Add a compression flag to msg struct 2012-01-11 20:26:39 +01:00
Miek Gieben 0008471adf Add empty CompressedLen function 2012-01-11 20:12:38 +01:00
Miek Gieben 13f1f5b066 Question is compressible IMO 2012-01-11 16:22:58 +01:00
Miek Gieben 1de9cff07a BIND cannot handle compressed dynamic updates 2012-01-11 16:19:49 +01:00
Miek Gieben dfd7700790 Compression is not allowed in dyn. updates 2012-01-11 16:18:17 +01:00
Miek Gieben 6d95911558 Dont allow the question section to be compressed 2012-01-11 16:16:09 +01:00
Miek Gieben f39d939f52 Fix compression
The compression was fixed. Also the packing of message is been speed
up, by a facter of 3. Now the packing happens once, instead of
3 times.

Two tests still fail. atm
2012-01-11 16:04:52 +01:00
Miek Gieben bbd8c42de6 Fix the tests 2012-01-11 14:17:09 +01:00
Miek Gieben 6bf1255177 Fix compression 2012-01-11 14:09:47 +01:00
Miek Gieben ba869578fd Implement compression 2012-01-11 11:44:44 +01:00
Miek Gieben b5d73f1eff Implement compressible domain names 2012-01-11 11:19:07 +01:00
Miek Gieben 974c28d1b1 More fixes for compression 2012-01-11 11:13:17 +01:00
Miek Gieben f66bb9d6f5 Merge fixed 2012-01-10 16:05:30 +01:00
Miek Gieben 15d82f0b34 Fix the size -- was counting the labels, not the bytes 2012-01-10 13:47:34 +01:00
Miek Gieben 3b30c6e0b5 Need to work even harder to fix the length, but this is much better 2012-01-10 10:46:55 +01:00
Miek Gieben bacfa5a80c A Len() to RR interface
This isn't yet finished, but it helps in asserting the amount of
space to alloc when packing a message
2012-01-10 10:43:28 +01:00
Miek Gieben cedf11f27b Working compression algo 2012-01-10 08:52:18 +01:00
Miek Gieben 6e0340d46f Remove debugs 2012-01-09 21:27:52 +01:00
Miek Gieben f90270014c This is a working name compression 2012-01-09 21:27:31 +01:00
Miek Gieben 973c5f3e1a Add a splitlabels 2012-01-09 11:02:45 +01:00
Miek Gieben e522a6daf7 Make all tests fully qualified 2012-01-08 15:34:42 +01:00
Miek Gieben 58e5def52a Allow A records without rdata 2011-12-17 20:31:31 +01:00
Miek Gieben dd14200da0 Revert back to slower Rdlength setting
That at least works...
2011-12-17 20:13:35 +01:00
Miek Gieben 4c50439700 Add it 2011-12-16 19:29:24 +01:00
Miek Gieben de3f0f3903 Documentation and make the random better 2011-12-16 19:28:35 +01:00
Miek Gieben 131f6962d1 gofmt 2011-12-09 21:45:57 +01:00
Miek Gieben 2e0a4a5e34 Allow A records without Rdata 2011-12-09 21:42:49 +01:00
Miek Gieben 88c12387f9 Fixes 2011-12-09 16:07:17 +01:00
Miek Gieben ad11f2425e export Unpack/PackDomainName 2011-12-09 15:58:36 +01:00
Miek Gieben e115e5da6e Update to the latest weekly: weekly/weekly.2011-12-06
The new time API must still be used. But for now it compiles.
All DNSSEC/TSIG timing is probably broken
2011-12-09 11:16:49 +01:00
Miek Gieben 22a467e718 Fixes the latest weekly 2011-11-02 23:06:54 +01:00
Miek Gieben 6e403621e1 Fix NSID (or OPT option code 3) 2011-09-26 09:11:14 +02:00
Miek Gieben 1a81ac9c85 NSID is broken 2011-09-20 12:52:23 +02:00
Miek Gieben 850a12ac8e Return a error when there is no conn, dont panic 2011-09-20 10:20:24 +02:00
Miek Gieben fb68e29eb1 Create fp as a type 2011-09-19 22:27:56 +02:00
Miek Gieben 7d73d6e9e1 Make opcode public and fix the IsEdns0 2011-09-19 13:34:16 +02:00
Miek Gieben 5960047748 Make them public 2011-09-19 13:25:02 +02:00
Miek Gieben 6ef13c3cbd Start thinking about server side axfr 2011-09-11 17:24:52 +02:00
Miek Gieben 6e72207318 Simplify tsig
Add a couple of errors, and make the function signature
of the tis function more inline with the dnssec ones.
2011-09-10 16:50:27 +02:00
Miek Gieben b7ca96e7d4 Normalize errors
Use the errors as defined in msg.go and a few.
2011-09-09 10:21:04 +02:00
Miek Gieben 18596dd3f8 Use typeANY, not typeALL 2011-08-22 14:11:41 +02:00
Miek Gieben c37686a724 remove len(s) from the fastpath 2011-08-09 11:41:44 +02:00
Miek Gieben 100f8ef7eb Remove len(msg) in favor of a variable with that value 2011-08-09 10:54:58 +02:00
Miek Gieben 1053090121 performace tweaks 2011-08-09 10:29:30 +02:00
Miek Gieben da5d2e91a8 Remove another small allocation 2011-08-09 10:16:45 +02:00
Miek Gieben c64f506103 Remove a packStruct - should improve performance 2011-08-08 15:28:19 +02:00
Miek Gieben 982f277a44 kill a packStruct 2011-08-08 14:09:05 +02:00
Miek Gieben 861a2adb6c Forget to the add the i := fv.Uint() 2011-08-08 13:10:35 +02:00
Miek Gieben 2a596f60b9 impl. the recent changes from the reflect package 2011-08-08 10:15:24 +02:00
Miek Gieben d6716f693d impl. the recent changes from the reflect package 2011-08-08 09:49:25 +02:00
Miek Gieben 27948bb9f9 Use uint16 instead of int 2011-08-04 15:13:10 +02:00
Miek Gieben 6931e1e215 Adapt ns to the new (fast) zone structure 2011-07-29 14:15:59 +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 2e4f0cc015 goto restrictions 2011-07-18 13:26:57 +02:00
Miek Gieben f1cbdbd9d4 New goto rules 2011-07-18 13:12:22 +02:00
Miek Gieben 77f4205cea I can parse rrs now 2011-07-14 21:25:15 +02:00
Miek Gieben 3f69a63128 class NONE added 2011-07-06 17:33:16 +02:00
Elazar 904e322dfd Ran gofix, and manually bring code up to latest go release.
1) Ran gofix on all files.
2) Added "tcp" and "udp" to Resolve* functions in server.go
3) Generated primes to the primes array and not to two predefined
   struct members (P and Q), since now rsa support multi-factor primes.
2011-06-02 13:31:12 +03:00
Miek Gieben e5a769baf0 Fix up API and documentation 2011-03-30 14:54:43 +02:00
Miek Gieben 2d7a1cddeb Add QuerySimple
Some examples are working again. Things are getting
better.

Still need to think about a generic Config (ClientConfig)
for parsing the /etc/resolv.conf
2011-03-29 10:15:42 +02:00
Miek Gieben 135772de9f complete rewrite the resolver side
make it mirror the server side and thus
async and concurrent
2011-03-28 10:01:10 +02:00
Miek Gieben f2a93a155b Implement all other TSIG checks 2011-03-25 14:46:30 +01:00
Miek Gieben ec0a52ccac documentation 2011-03-25 11:20:52 +01:00
Miek Gieben 8aa88a0bd3 normalize errors 2011-03-25 11:19:35 +01:00
Miek Gieben 87845a9cb1 Formatting 2011-03-24 09:24:49 +01:00
Miek Gieben 25bdf43f06 more documentation updates 2011-03-23 19:37:07 +01:00
Miek Gieben 0059556516 More TSIG changes. Curious if they amount to something 2011-03-15 16:18:13 +01:00
Miek Gieben 82bb573f56 more tsig work - still does not validate but getting close 2011-03-14 12:28:04 +01:00
Miek Gieben 36b77b3b8b Fix txt rdata 2011-03-14 09:38:29 +01:00
Miek Gieben b0dad846ad Fix TSIG 2011-03-13 19:01:57 +01:00
Miek Gieben 0a742210ca Add DHCID record 2011-03-13 13:11:11 +01:00
Miek Gieben e585cbf8f4 Add KX record 2011-03-13 13:04:54 +01:00
Miek Gieben 735c254a3b Fix TSIG and make check if is works with axfr (yes) 2011-03-11 14:24:33 +01:00
Miek Gieben dfcd170f99 Fixes 2011-03-04 17:19:19 +01:00
Miek Gieben 47d5db5392 Decode NSEC3/NSEC with an any types correctly 2011-03-02 16:18:24 +01:00
Miek Gieben 7014ede8bb Add -short option that does not display the long key and sig data 2011-03-01 14:57:21 +01:00
Miek Gieben e6dc03baeb Shuffle the dns constant to dns.go 2011-02-28 10:42:03 +01:00
Miek Gieben 5c6f9f613e implement parsing of longer (>255) txt records 2011-02-28 10:28:07 +01:00
Miek Gieben 98e4b33cb5 formatting and documentation 2011-02-24 16:22:14 +01:00
Miek Gieben 266ed16e72 refactor the rrset to signedata function 2011-02-24 15:29:36 +01:00
Miek Gieben b19fa97c1d Add URI RR type - type just got allocated number 256 2011-02-23 09:11:03 +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 865ba16420 small bug 2011-02-21 19:29:42 +01:00
Miek Gieben a90533a13f implement unknown RRs
RFC3597 - unknown rr are implemented. Currently Go dns
needs to now the type code, but must lack the actual implementation
of that type.
See IPSECKEY as an example.
2011-02-21 15:57:15 +01:00
Miek Gieben daaeaba69b Add unknown resource record parsing 2011-02-21 15:44:42 +01:00
Miek Gieben 1743555d07 add TALINK 2011-02-21 13:24:45 +01:00
Miek Gieben 65c4282944 add TA and DLV records 2011-02-21 13:16:07 +01:00
Miek Gieben 241d441371 fix the multiplexing 2011-02-09 17:59:06 +01:00
Miek Gieben 9fc9f325b8 Folded resolver back into main package 2011-02-08 20:15:54 +01:00
Miek Gieben d87e7eff86 support nsec3 and nsec3param 2011-02-03 20:39:43 +01:00
Miek Gieben f934968d00 remove printlns 2011-01-27 20:24:58 +01:00
Miek Gieben 0f9b484e6d remove prints from msg.go, not nice to do in the library 2011-01-27 19:35:34 +01:00
Miek Gieben d9dfd913a7 documentation updates 2011-01-27 09:29:11 +01:00
Miek Gieben bdde78ff2f TSIG works 2011-01-26 15:13:06 +01:00
Miek Gieben 8b832018a4 numerous tsig fixes - validation and generation almost working 2011-01-25 23:40:45 +01:00
Miek Gieben c40c936cf5 Fix tsig - now add verify stuff 2011-01-25 22:05:16 +01:00
Miek Gieben df4fb16e14 Fix tsig unpacking (i.e. it works now) 2011-01-25 21:57:17 +01:00
Miek Gieben 1ece21a05e Fix Tsig parsing 2011-01-25 15:09:30 +01:00
Miek Gieben 3699c21a53 added SPF 2011-01-25 14:07:01 +01:00
Miek Gieben 7e1f9490f2 Cert RR added
PubKey is named PublicKey in the RR_DNSKEY
2011-01-25 13:57:54 +01:00
Miek Gieben 2431b84a3c added DNAME 2011-01-25 13:47:12 +01:00
Miek Gieben 05c75c348b Add funkenstorm
Added funkenstorm, only does stripping of additional section

Fix encoding of ipv4 addresses that are put in a  16 byte buffer (AAAA).
Just assume the last four bytes are ipv4 in that case
2011-01-21 12:55:35 +01:00
Miek Gieben e544237d36 slightly better formatting of the flags in msg.String() 2011-01-18 19:19:42 +01:00
Miek Gieben ec441e36e1 Add Meta data to the resolver 2011-01-18 15:44:30 +01:00
Miek Gieben 9eea4682fd Fix documentation 2011-01-17 21:10:48 +01:00
Miek Gieben 5442276337 NSEC3PARAM record 2011-01-17 16:09:30 +01:00
Miek Gieben e57dc24115 A simple responder nameserver 2011-01-17 15:43:54 +01:00
Miek Gieben 74796c8672 Add SRV and NAPTR record support 2011-01-17 10:30:20 +01:00
Miek Gieben 508103a287 make the parsing compile - complete unusable atm 2011-01-15 14:40:54 +01:00
Miek Gieben 54f158c23d Helper functions for base64 encoding/decoding 2011-01-15 10:38:14 +01:00
Miek Gieben 578304226f Add dnskey gen for RSA keys 2011-01-10 16:10:15 +01:00
Miek Gieben 69f9bc6ecd Start packing nsec/nsec3 typeBitMap 2011-01-09 22:51:36 +01:00
Miek Gieben d3f9bbe2c9 Set order correctly 2011-01-09 22:06:24 +01:00
Miek Gieben 7da3d0bcb7 Fix the NSEC(3) bitmap 2011-01-09 22:02:25 +01:00
Miek Gieben a6fee19f4c Fix tsig by making timeSigned a 64 bit int
only use the lower 48 bits to make it all work
2011-01-09 15:30:45 +01:00
Miek Gieben 11a1c753a8 Pack a uint48 as a [3]uint16 2011-01-08 23:47:24 +01:00
Miek Gieben 1b39853f03 tsig generation; first stab 2011-01-08 22:39:15 +01:00
Miek Gieben b2e9fc8d84 Added TSIG
By defining a new struct I can re-use all the nice
stuff in msg.go
2011-01-08 21:51:20 +01:00
Miek Gieben a5100db599 Complete fix NSID
parsing/reading and setting al work now
2011-01-06 14:58:58 +01:00
Miek Gieben d4059485d5 Add even more rcodes 2011-01-03 10:44:00 +01:00
Miek Gieben aeb1ce8d9c Fix the constnames 2011-01-01 20:51:34 +01:00
Miek Gieben 10bfb3d036 Complete the list of DNS q opcodes 2011-01-01 19:51:25 +01:00
Miek Gieben 7c2de14b8d add TKEY and finalize TSIG
No crypto validation ofcourse... only the definition of the RRs
2011-01-01 19:26:08 +01:00
Miek Gieben 43ebf75fac Fix XFR
The example test performs an axfr, but as ixfr differs slightly
it should also support ixfr
2011-01-01 17:42:13 +01:00
Miek Gieben 1c9282ed7e Framework for xfr started in resolver 2010-12-31 17:05:11 +01:00
Miek Gieben 0dcdbe4361 Fix DNS over TCP
Actually send the 2 bytes length and also be prepared
to receive them.
2010-12-31 14:11:52 +01:00
Miek Gieben cc66917658 Add basic support for the LOC record 2010-12-30 20:55:25 +01:00
Miek Gieben 2decd91cb4 Add the NAPTR record 2010-12-30 20:50:31 +01:00
Miek Gieben ec2e732ad3 Better handle error in pack/unpacking 2010-12-30 17:15:59 +01:00
Miek Gieben 9d1d7444a3 Some fixes from creating a dig-like program 2010-12-30 16:38:16 +01:00
Miek Gieben bcf320aad4 rename the examples dir
Make it *not* show up in godoc
2010-12-30 14:13:28 +01:00
Miek Gieben 15dd65171b Split the package in multiple packages
dns - the standard rrtypes and such
    dnssec - validation, keytag calculation, etc
    resolver - for talking to servers
2010-12-30 13:42:52 +01:00
Miek Gieben 4ed14b9785 More cleansup and robustness
* make the resolver more robust
* more dnssec functions
2010-12-28 09:41:54 +01:00
Miek Gieben 8dbefdd3f1 Add key2ds conversion
More DNSSEC pieces are coming together
2010-12-27 13:56:58 +01:00
Miek Gieben 36b181f65a Add keytag calculation
Still slow, but it is working. Added testcase for this too
2010-12-27 12:49:48 +01:00
Miek Gieben 830b2eae29 add hex encoding for DS record
* some more edns finishing touches
2010-12-27 09:58:45 +01:00
Miek Gieben d6efd37302 Some cleanup 2010-12-25 13:09:27 +01:00
Miek Gieben 65caf6f891 Documentation!
Make the packet documentation much nicer.
2010-12-25 11:14:11 +01:00
Miek Gieben 7d0a9dd4ca remove debugging code 2010-12-23 17:13:10 +01:00
Miek Gieben d1e5b182a7 remove some debugging code 2010-12-23 17:10:06 +01:00
Miek Gieben 04a18e9937 Define NSEC3 and NSEC and NSEC3PARAM RRs
Those come with new rdata-types that still needs to be impl.
2010-12-23 16:37:54 +01:00
Miek Gieben 94de3401fe cleanups; rm unused stuff 2010-12-23 14:31:36 +01:00
Miek Gieben 18afd5e536 EDNS is easy
Only the OPT RR needs to be supported
2010-12-23 14:07:35 +01:00
Miek Gieben 8302d19b42 At least it gives formerr now 2010-12-23 11:02:01 +01:00
Miek Gieben 4668b309e2 seems to have a working edns impl 2010-12-23 10:43:10 +01:00
Miek Gieben 25f2e3d7e8 Look at the domain to see if it is edns
throw this information back upwards so the
the Edns bool can be set.
2010-12-23 09:51:43 +01:00
Miek Gieben 1a50861b43 another stab at edns0 2010-12-22 23:05:21 +01:00
Miek Gieben 4ce23b71cf Fix the encoding a EDNS RR
Still need to handle the domain name packer, so that we can
detect we have an OPT RR, with the different encoding
2010-12-22 20:53:18 +01:00
Miek Gieben 63c4d10ed0 Add stuff for EDNS 2010-12-21 21:12:43 +01:00
Miek Gieben b8c9280cc4 add the remaining flags in the DNS headers
Next up: EDNS
2010-12-21 14:41:48 +01:00
Miek Gieben 0ed946d772 commit other changes too 2010-12-20 22:20:13 +01:00
Miek Gieben 0e00511c31 Make the resolver a goroutine
Fits more nicely with DNS, async. for free
Renamed the files: dropped the dns prefix
2010-12-18 20:31:26 +01:00