Commit Graph

164 Commits

Author SHA1 Message Date
Filippo Valsorda 155118a341 Reject a bad EDNS0_SUBNET family on unpack (not only on pack) 2015-08-05 00:18:02 +01:00
Harvo Jones 57d8407ad7 Changes applied:
* Renamed EDNS0_CUSTOM to EDNS0_LOCAL
* Added EDNS0LOCAL constants
* Added documentation
2015-03-18 12:12:53 -07:00
Harvo Jones 8bd3ac773f Add support for custom EDNS options in GoDNS.
A handful of EDNS options have been standardized, and they each have a type defined in GoDNS.  However there is currently no way a development team can use GoDNS with internally defined options, or with new options that may be proposed in the future.

This change solves the problem by giving users an EDNS0_CUSTOM type to allow clients to send, and servers to receive, custom EDNS options.
2015-03-17 10:41:55 -07:00
Miek Gieben 64fea017a2 Move all docs to docs.go
Another golint change.
2015-02-19 13:47:50 +00:00
Miek Gieben 67945c119e A bunch of golint fixes
The proposed vars names are a nono, because they break the API.
Things left: document each RR and zscan_rr.go has some funcky if-then-elses.
2015-02-19 09:58:33 +00:00
Miek Gieben d92b230e89 fix buffer overrun in unpack() 2014-11-04 20:17:43 +00:00
Miek Gieben 089554ccd1 Rename to ExtendedRcode and fix a comment 2014-10-08 14:29:46 +00:00
Filippo Valsorda 9088298b2b Add support for extended RCODEs and detect bad RCODEs 2014-09-26 12:18:36 +01:00
Filippo Valsorda 43fe5fb12c Fix the OPT RR Version get code and simplify DO get/set 2014-09-23 17:55:36 +01:00
Miek Gieben 0aa3021a83 Remove all copyright notices
Use the central COPYRIGHT file.
2014-09-11 20:57:37 +01:00
Catalin Patulea 009c72175f Update documentation references for EDNS0 and EDNS0_SUBNET.
Only EDNS0 is defined in RFC 6891 and EDNS0_SUBNET is actually just a draft.
2014-09-05 23:56:41 -04:00
Miek Gieben a71489b611 EDNS0: implement RFC 7314
Add the new option code.
2014-07-21 19:31:28 +01:00
Miek Gieben b0342e8757 Small extension of documentation 2014-06-29 10:36:59 +01:00
Miek Gieben dd90d7942b Add more EDNS0 options 2014-06-19 11:05:28 +00:00
Miek Gieben 0364de3abf Make EDNS0 unpack return error on failure
Report these errors upwards when unpacking a message.
2014-01-24 10:09:22 +00:00
Pieter de Boer e32b05768f Fix length overrun in EDNS0 parsing.
Original text: (in Dutch)

Ik kreeg crashes (index out of range) in het parsen van een EDNS0_LLQ
optie, doordat de method: 'func (e *EDNS0_LLQ) unpack(b []byte)' een
byte slice van 1 byte groot kreeg waar dan meerdere uint16's uit gelezen
werden.
2014-01-24 09:15:56 +00:00
Andrew Tunnell-Jones eb039fb959 Return bytes when packing EDNS0_LLQ struct 2013-12-14 10:52:44 +11:00
Miek Gieben 1c343223b5 Go over the documentation again 2013-10-15 13:42:24 +00:00
Miek Gieben b97b3340fb Make TSIG work again
Start fixing and using the UDP bufsize option.
2013-09-29 10:22:27 +01:00
Miek Gieben 007c0f06e4 Return as the last statement
Be compatible with older go releases.
2013-09-20 20:24:58 +01:00
Miek Gieben 6d02134e2d Doc update 2013-09-20 08:37:22 +01:00
Ask Bjørn Hansen 55c1f95213 Support the new RFC6891 EDNS0 SUBNET option code
Also keep support for the old draft code
2013-09-19 22:31:28 -07:00
Miek Gieben 5ae9b5214f more testing and concurrent server benchmarking 2013-06-22 08:55:30 +01:00
Miek Gieben 5d094e6e2d gofmt 2013-06-14 19:42:55 +01:00
Miek Gieben eaa57c3335 EDNS0 codes have been allocated 2013-06-07 10:45:58 +00:00
Miek Gieben c66494c6c5 Resolv merge conflicts 2013-05-12 19:08:37 +02:00
Miek Gieben 81941d4422 Update all copyright notices 2013-05-12 16:15:52 +02:00
Miek Gieben b326ffeae9 We start at 5 for the algorithm understood 2013-05-12 09:59:40 +02:00
Miek Gieben 320d981509 Add Algo-signal-draft impl. for EDNS0 2013-05-11 21:02:17 +02:00
Miek Gieben ce95cddec1 and fix this typo too 2013-05-11 18:14:49 +02:00
Miek Gieben 9768128f7b Further search and replace fixes 6->5 2013-05-11 18:10:31 +02:00
Miek Gieben 48c65d7119 Search and replace gone wrong 2013-05-11 18:07:03 +02:00
Miek Gieben 1f7cc5e03f Use correct number 2013-05-11 18:04:55 +02:00
Miek Gieben da9a970a5e Fix the newer names for EDNS0 2013-05-09 08:27:49 +02:00
Miek Gieben ec9ac92fad Half the parsing of the EDNS LLQ package 2013-05-08 23:03:02 +02:00
Miek Gieben 71e3d1dfcb Preliminary support for EDNS0_LLQ 2013-05-08 22:34:42 +02:00
Miek Gieben 6ecde82c20 Remove UPDATE_LEASE to UL
The "other" edns0 option will then become LONG_LIVED_QUERIES which
is way to long to be practical, so I want to make it LLQ, UPDATE_LEASE
then needs to be come UL.

This will probably impact no-one, because noone uses this (I hope)
2013-05-08 22:28:19 +02:00
Miek Gieben eaee06b87e update the documentation 2013-05-08 10:09:49 +02:00
Ask Bjørn Hansen 0bcd43e7cc Use SourceNetmask to truncate IP addresses in EDNS-CLIENT-SUBNET packets
OpenDNS returns SERVFAIL to the client if the address in the EDNS packet
is too long. The spec says to truncate it to the shortest possible address
when the SourceNetmask is applied.
2013-05-07 16:53:43 -07:00
Miek Gieben d53d9eab81 gofmt 2013-05-05 20:30:44 +02:00
Miek Gieben cd10853288 Make Len() and Copy() private
I don't think anybody will needs these, msg.Len() is still
available. Severly cuts back on the amount of exported functions.
2013-02-09 08:35:17 +01:00
Miek Gieben 37cfcdfbef add todo 2013-01-28 13:12:54 +01:00
Miek Gieben b92195920a Prefix errors with dns: 2013-01-28 13:09:38 +01:00
Miek Gieben eb28b618cb Be much more inline with the spec for the edns subnet 2013-01-27 14:47:47 +01:00
Miek Gieben 9cd656b377 typo 2013-01-22 13:27:48 +01:00
Miek Gieben 6cd2d0524d typo in docs 2012-12-14 16:24:53 +01:00
Miek Gieben 2e02b42558 Fix documentation too 2012-12-09 20:20:16 +01:00
Miek Gieben 235e892dfc Rename the RR types drop the RR_ prefix
This is also done in the official Go library. It also make the
code shorter.
2012-12-09 19:23:25 +01:00
Miek Gieben ffe42637c5 Documentation 2012-12-01 12:44:57 +01:00
Miek Gieben 60d891eba6 put const here 2012-10-16 13:48:43 +02:00
Miek Gieben bd435eb824 Small tweak 2012-10-15 20:36:02 +02:00
Alex Polvi ec8d3d51d1 initial stab at edns update lease http://files.dns-sd.org/draft-sekar-dns-ul.txt 2012-10-15 18:37:19 +01:00
Miek Gieben 795b6cb581 Add some more docs
A per Ask's request add some docs on how a server should deal
with EDNS0 options in the OPT RR.

closes #27
2012-09-09 13:36:43 +02:00
Miek Gieben 379cb2483a I dont think these need to be exported 2012-09-09 13:24:21 +02:00
Miek Gieben 1687a13438 Further minimize the lib 2012-08-20 09:39:10 +02:00
Miek Gieben 335545f6d7 Return the correct code 2012-07-05 12:53:45 +02:00
Miek Gieben 743e1dd3e8 Make it compile 2012-07-05 11:53:09 +02:00
Miek Gieben e6fca0be3f Actually copy the RR for DNSSEC validation.
This is needed because we need to fiddle with the TTL and sometimes
even need to lowercase the rdata. We dont want this to propagate
to the original RRs
2012-06-20 19:16:54 +02:00
Miek Gieben 01442e58af more Copy() functions 2012-06-20 17:44:18 +02:00
Miek Gieben fb0623fbb2 change comments 2012-06-01 22:23:21 +02:00
Miek Gieben b2f459b7fa fixes 2012-06-01 18:29:07 +02:00
Miek Gieben de95ac0bb3 gofmt 2012-06-01 13:35:52 +02:00
Miek Gieben 2827f497aa Add documentation for edns0 2012-06-01 13:11:17 +02:00
Miek Gieben 54519d1a4d Implement address truncation as specified in the draft 2012-06-01 11:40:57 +02:00
Miek Gieben 77709d301c Show ip6 address with [ and ] 2012-05-31 23:02:06 +02:00
Miek Gieben c326309d62 Fix subnet stuff 2012-05-31 22:40:52 +02:00
Miek Gieben 1bf0864632 First pass for edns subnet support 2012-05-31 21:40:07 +02:00
Miek Gieben 29365cc9d8 more consistent naming 2012-05-31 19:33:12 +02:00
Miek Gieben b0c12388e8 Give edns0 support as much need upgrade
Its now much nicer and more Go like. In essence ENDS0
is a sort of a mini RR parser.
2012-05-31 18:36:27 +02:00
Miek Gieben 1948cd2a90 Use go vetted struct tags
They had the form: "domain-name", now they are key value pairs (key is
always dns: `dns:"domain-name"`
2012-04-29 21:55:29 +02:00
Miek Gieben e1873c28bc move tsig to tsig.go just as RR_OPT 2012-03-02 23:07:25 +01:00
Miek Gieben 2c44133163 Fixes for the new presentation of txt records 2012-02-13 15:59:40 +01:00
Miek Gieben 5917838cbb gofmt 2012-01-20 12:24:20 +01:00
Miek Gieben dd36721421 Doc and make it slightly better 2012-01-15 16:24:57 +01:00
Miek Gieben 3cb9591a51 Gofmt 2012-01-15 15:30:12 +01:00
Miek Gieben 6e3385b868 Append edns zero options 2012-01-13 12:29:25 +01:00
Miek Gieben 4a5a144c53 Finalize edns version setting 2012-01-12 20:39:31 +01:00
Miek Gieben c70a559315 Fix the OPT Len() function 2012-01-12 20:16:16 +01:00
Miek Gieben 2829cf1c01 Fix the OPT Len() function 2012-01-12 20:16:00 +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 131f6962d1 gofmt 2011-12-09 21:45:57 +01:00
Taral c1889c778d gofmt (excluding _examples) 2011-11-27 21:03:21 -08:00
Miek Gieben 1a81ac9c85 NSID is broken 2011-09-20 12:52:23 +02:00
Miek Gieben 4228e0ad7d a new line
Add a newline before printing the EDNS record.
Make it look like a real pseudo section
2011-09-15 21:57:10 +02:00
Miek Gieben 8aa88a0bd3 normalize errors 2011-03-25 11:19:35 +01:00
Miek Gieben 778e146033 Add tsig and mangle back to Query 2011-03-23 19:15:30 +01:00
Miek Gieben 28b008e05e tweaks 2011-03-22 09:44:33 +01:00
Miek Gieben 98e4b33cb5 formatting and documentation 2011-02-24 16:22:14 +01:00
Miek Gieben 77348913dd Update the documentation 2011-02-24 16:13:23 +01:00
Miek Gieben 5ce850ff22 docs edns0 2011-01-27 14:28:04 +01:00
Miek Gieben 9eea4682fd Fix documentation 2011-01-17 21:10:48 +01:00
Miek Gieben c6655f6e6d No newline in the OPT record 2011-01-08 19:45:59 +01:00
Miek Gieben b5de7e1745 Fix the testsuite 2011-01-07 10:09:46 +01:00
Miek Gieben 0040c9b30e More convience functions 2011-01-06 15:24:18 +01:00
Miek Gieben 7888cd96b8 edns ala dig
use the OPT pseudo header for NSID, ala bind
2011-01-06 15:06:06 +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 08b6220c67 Make the edns api more Go like
Split the set/get function to a SetX() and X()
2011-01-06 10:24:00 +01:00
Miek Gieben e1d0db4107 remove the variable here 2011-01-01 22:40:55 +01:00
Miek Gieben acdab89120 Completely fix EDNS0 2010-12-30 18:42:40 +01:00
Miek Gieben 9b745ab4d3 typos in comments 2010-12-30 15:22:13 +01:00