Commit Graph

166 Commits

Author SHA1 Message Date
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
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