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