Commit Graph

120 Commits

Author SHA1 Message Date
McStork a5cc44dc6b set ExtendedRcode return type to int instead of uint8 (#347) 2016-04-18 17:40:15 +01:00
Miek Gieben 84206d880d Put the correct extended rcode in OPT
We were off by a value of 15. This fixes it. Hard to come up with a test
as writing and reading it yourself will be consistent.
Don't allows extended rcodes smaller than 16. And fix the tests as well.
2016-04-09 16:07:18 +01:00
Filippo Valsorda 25846488f9 Apply per-type code generation to .copy()
This fixes bugs in MB and CNAME.copy() (using sprintName for copying),
IPSECKEY (missed copyIP) and OPT (partially, Options was not copied as
slice; EDNS0 objects themselves are still pointers).
2015-10-07 05:51:36 +01:00
Filippo Valsorda d4a4e089d0 Generate programmatically per-type code, including .len()
This process probably fixes a bug in NSAPPTR.len(), after a similar one was
found in HINFO.len().

This should also make it easier to make changes to these functions, and
check their correctness.

Generate the code by running "go generate".
2015-10-07 05:48:12 +01:00
Miek Gieben 9bf52083d1 golint fixes 2015-08-23 08:03:13 +01:00
Filippo Valsorda 4a26a5bbbf EDNS0_SUBNET: refactor netmask handling
Added some more symmetric sanity checks when packing and unpacking, and
simplified the logic a bit, which should still remain mostly unchanged and
incomplete.  A complete implementation of the draft would require context
about whether it's a request or reply and possibly from the request
corresponding to the reply (!£$!@$!) so screw it.
2015-08-05 00:18:02 +01:00
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