Commit Graph

306 Commits

Author SHA1 Message Date
Miek Gieben 5f6228d4cc Use the non-exported version err 2013-06-20 07:27:28 +01:00
Miek Gieben 5d094e6e2d gofmt 2013-06-14 19:42:55 +01:00
Miek Gieben 72f4cd81d8 Rename these internal values
_UDP and _TCP are ugly, just lowercase them.
2013-05-13 12:02:29 +02:00
Miek Gieben 5537ac771d Recheck the server mux match logic
And a test to make sure it all works. The root zone can still
be configured as a last resort (wildcard) match.
2013-05-12 15:56:12 +02:00
Miek Gieben d53d9eab81 gofmt 2013-05-05 20:30:44 +02:00
Miek Gieben 07d0e08366 Remove radix from core go dns 2013-05-04 23:21:01 +02:00
Miek Gieben 45775dff76 Remove the radix.Radix dependency
Put everything in maps. This removes to a major dependency and
makes Go DNS only depend on the core Go packages. This will
probably also be faster than the current setup -- although this
needs to be benchmarked.
2013-05-04 22:28:44 +02:00
Miek Gieben 602f3f4a49 typo 2012-12-28 09:20:15 +01:00
Miek Gieben 8cadf1d662 protect ServeMux access with a mutex
Make it "concurrent-use-safe"
2012-12-28 09:19:37 +01:00
Miek Gieben 3c4e9a95b4 update the documentation 2012-12-14 13:48:26 +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 d758825590 more documentation 2012-12-02 10:14:53 +01:00
Miek Gieben 267cfaab11 Make ResponseWriter a io.Writer
The WriteBuf() is renamed Write() and returns and int and
an error. The old Write() call, is now WriteBuf()
2012-11-18 12:21:02 +01:00
Miek Gieben 00c4f46c7e Make WriteBuf ala io.Write 2012-11-18 12:05:18 +01:00
Miek Gieben ea947838d8 Do the TCP write in one write
Before the tcp writes were done like NSD does them:
2 bytes length, and the rest of the message.

Now a complete buffer is created with LLMMM...MMM, where
LL is the 2 byte length and MMM...MMM is the message to be send.
This makes the reply faster at the cost of doing a realloc of the
message buffer.
2012-10-17 12:40:57 +02:00
Miek Gieben 006fae01d1 added 1.0 as version 2012-10-12 14:20:43 +02:00
Miek Gieben 3560da6104 conn is gone 2012-10-12 14:18:01 +02:00
Miek Gieben 9ab211d660 small tweaks 2012-10-12 14:03:56 +02:00
Miek Gieben 7ca43a2a3f no nill message 2012-10-10 21:09:33 +02:00
Miek Gieben fdd3e70f19 Older version back 2012-10-10 21:09:11 +02:00
Miek Gieben 506a4237e5 no nil checks 2012-10-10 21:00:47 +02:00
Miek Gieben 56b5d926aa even faster, by smarter checking for tsig 2012-10-10 17:28:10 +02:00
Miek Gieben a35f8defbf even faster, by smarter checking for tsig 2012-10-10 17:27:03 +02:00
Miek Gieben a8f2ce51c7 Eliminate the conn structure for speed
conn isn't needed, we can encode the info directly in the
reponsewriter. This saves on allocations and gc for each connection
2012-10-10 15:37:25 +02:00
Miek Gieben 8a49e9da90 newConn is useless 2012-10-09 21:38:17 +02:00
Miek Gieben 570bf8dc69 Use proper error in packing and unpacking
All the relevant functions now return an error instead of
a simple boolean. This greatly approves the feedback to coders.

Spotted some fishy error handling along the way and fix that too.
2012-10-09 21:17:54 +02:00
Miek Gieben d5e6aaba0b adapt to v2 radix tree impl. 2012-09-09 23:38:01 +02:00
Miek Gieben 288bb6f812 the panic isnt right, we can still hit it, just return nil 2012-09-08 11:09:40 +02:00
Miek Gieben 7fce26e781 work better with the latest radix 2012-09-08 08:07:35 +02:00
Miek Gieben cacd7c4dcd fix merge 2012-09-07 20:37:45 +02:00
Miek Gieben aeb4c7d310 Use new radix api
Find return a boolean if it has an exact match, predecessor has
been removed
2012-09-07 19:32:22 +02:00
Miek Gieben b00354cc65 tweaks for the new radix stuff 2012-09-07 18:48:36 +02:00
Miek Gieben 9b74e1bc28 dns is 8bit clean 2012-09-04 08:08:44 +02:00
Miek Gieben c03a914cec add version.server and version.bind 2012-09-03 13:56:43 +02:00
Miek Gieben ac51a3e97d add authors.bind and friends. 2012-09-03 13:01:39 +02:00
Miek Gieben 88902fc943 Add authors helper function 2012-09-03 12:54:18 +02:00
Miek Gieben 12c7bc1021 First set the timeouts, then use the socket 2012-09-01 09:28:19 +02:00
Miek Gieben 0a586f5ebb Merge branch 'master' of github.com:miekg/dns 2012-08-31 15:10:46 +02:00
Miek Gieben 7a0877d090 Merge conflict fixed 2012-08-31 15:10:43 +02:00
Miek Gieben 4a4292c1b9 fix merge 2012-08-31 15:05:59 +02:00
Miek Gieben 9242855153 fix rest 2012-08-31 10:13:21 +02:00
Miek Gieben a0e3423d8e dont bail out when accepting the conn fails 2012-08-31 10:08:36 +02:00
Miek Gieben 2e13e0e10c req in response is not needed 2012-08-30 09:34:40 +02:00
Miek Gieben 1f29674505 small tweaks 2012-08-29 09:59:08 +02:00
Miek Gieben 14a8b3c2f2 Fix documentation 2012-08-28 19:53:21 +02:00
Miek Gieben b2fadde636 Fix hijack 2012-08-28 19:46:29 +02:00
Miek Gieben 0eae2d1735 implement Hijack 2012-08-28 19:41:23 +02:00
Miek Gieben e4fb00c34d Fix handling of non fully qualified domain names
When PackDomain sees such a name it calls panic.
All panic now use the prefix 'dns:'
2012-08-28 18:21:23 +02:00
Miek Gieben 8bc979fe1e make it compile 2012-08-28 13:30:59 +02:00
Miek Gieben a8737b6741 check if the packet has a valid answer section 2012-08-28 13:21:51 +02:00
Miek Gieben 9e318901a6 preparing to use hijack 2012-08-28 13:12:55 +02:00
Miek Gieben afd8cbf39d Add TsigTimersOnly function 2012-08-27 21:27:49 +02:00
Miek Gieben 68961f2f5b Make the IsTsig and IsEdn0 more usefull by returning the record 2012-08-25 11:24:01 +02:00
Miek Gieben b6342d94f9 typos 2012-08-24 15:20:20 +02:00
Ask Bjørn Hansen ffb28d97f9 Clarify comment 2012-08-23 20:21:33 -07:00
Miek Gieben 6f7aad15d8 documenation 2012-08-21 17:36:58 +02:00
Miek Gieben 47c859bc81 documentation 2012-08-21 17:21:47 +02:00
Miek Gieben a9637eeff1 documentation tweaks 2012-08-21 16:52:36 +02:00
Miek Gieben b720003623 make api smaller 2012-08-17 08:31:38 +02:00
Miek Gieben 6aee81ad74 refacter this code 2012-08-08 14:43:59 +02:00
Miek Gieben f05b532a3f gofmt 2012-08-08 11:13:28 +02:00
Miek Gieben 466496a23b Fix chaos 2012-08-08 11:08:25 +02:00
Miek Gieben 755bb11fde update the documentation 2012-08-08 09:26:29 +02:00
Miek Gieben 8646c8c6e6 Update fks-shield and remove ListenAndServeTsig
ListenAndServeTsig can be handled much more easier
if you create your own server object
2012-08-08 09:19:14 +02:00
Miek Gieben 468348fc28 user mgmt 2012-08-07 20:24:57 +02:00
Miek Gieben 07f206352a Add writebuf 2012-08-05 21:15:15 +02:00
Miek Gieben ae14f9a645 add bogus nl zone 2012-08-05 09:10:07 +02:00
Miek Gieben f204d99f07 documenation 2012-08-05 08:55:25 +02:00
Miek Gieben 77b74b02b0 Use Radix tree for the mux 2012-08-05 08:13:09 +02:00
Miek Gieben 4668fcfee4 Add Up method 2012-08-05 07:43:13 +02:00
Miek Gieben 3e33a3cb3a zone matching does not work ok 2012-08-05 05:39:47 +02:00
Miek Gieben 0a28fb5c6a Fixes for predecessor 2012-08-05 05:35:30 +02:00
Miek Gieben 74cb343482 add zone and put them in z dir 2012-08-05 04:55:27 +02:00
Miek Gieben 7a885b0c6b fqdn the handlers 2012-08-04 19:40:09 -07:00
Miek Gieben f62863dc27 Split of main and fix some dumb erros 2012-08-03 09:28:00 -07:00
Miek Gieben e08a87a991 Use the more correct SERVAIL instead of REFUSED 2012-08-03 08:38:41 -07:00
Miek Gieben 95c1154930 documentation 2012-05-08 14:17:17 +02:00
Miek Gieben fc599d23fe Save rtts for clients 2012-05-04 23:18:29 +02:00
Miek Gieben ac713d3128 Fix panic
Reported by Tomás Aparicio.
Closed #15
2012-05-02 22:54:57 +02:00
Miek Gieben 874787c537 Allow deregistration of handler
Implemented in both the server and client.
Renamed to client function to match the server side functions
Example progs need to be "ported" as this *is* an API change.
2012-03-26 23:15:15 +02:00
Miek Gieben 4f61f8621b More server side TSIG stuff - does not validate (yet) 2012-03-04 22:32:23 +01:00
Miek Gieben c53cddf38c TSIG overhauled
This lead to some changes in the Write() function. Both
server side and client side are now more similar.
2012-03-04 21:00:09 +01:00
Miek Gieben 1744a80850 add a TsigStatus to the client as well
Bring server and client side more inline
with each other. For a client we also
use TsigStatus() to retrieve the tsig info.
2012-03-04 14:47:20 +01:00
Miek Gieben fd6bdd4bba Elegant Tsig handling in the server
Lowlevel, but flexible. i.e. usable when building a server
2012-02-26 22:38:15 +01:00
Miek Gieben acba7a84fc Add server side tsig support 2012-02-26 22:02:55 +01:00
Miek Gieben f7f1d2ab42 Add listenAndServerTsig function 2012-02-26 21:33:50 +01:00
Miek Gieben 7981d35886 remove todos, it is working already 2012-02-26 20:09:03 +01:00
Miek Gieben 8b4957fe2e Tweaks 2012-02-25 22:12:01 +01:00
Miek Gieben 76c087f5ba docs for the RR interface 2012-02-15 23:34:41 +01:00
Miek Gieben bfffc15db4 Documentation 2012-02-15 13:16:09 +01:00
Miek Gieben 974f4214a2 More documentation updates 2012-02-12 11:37:52 +01:00
Miek Gieben 3ebacbaac8 udp msg size 2012-01-29 00:21:12 +01:00
Miek Gieben 09ac6c8dc5 gofmt 2012-01-28 00:35:37 +01:00
Miek Gieben f4dd746e14 return error if the buffer is to large 2012-01-27 08:46:41 +01:00
Miek Gieben bc2b826f38 Remove udpsize from ListenAndServer, too ugly 2012-01-27 08:45:33 +01:00
Miek Gieben 5917838cbb gofmt 2012-01-20 12:24:20 +01:00
Miek Gieben 780b49e3cc Fixes for weekly.2012-01-20 2012-01-20 12:16:32 +01:00
Miek Gieben 3069fd41a2 Remove print 2012-01-15 16:02:10 +01:00
Miek Gieben ee11948fcb Make the name more descriptive 2012-01-13 11:38:08 +01:00
Miek Gieben 189de95957 Make the udp msg size configurable 2012-01-12 22:47:36 +01:00
Miek Gieben 3078f05f56 Some more memory tweaks 2012-01-12 22:34:53 +01:00
Miek Gieben 22a467e718 Fixes the latest weekly 2011-11-02 23:06:54 +01:00
Miek Gieben 21e2f63b4c more server stuff 2011-09-11 22:10:04 +02:00
Miek Gieben 4925a831aa move zoneMatch to dns.go 2011-07-31 09:53:54 +02:00
Miek Gieben 47cc5b3e77 Fixes 2011-07-26 19:16:28 +02:00
Miek Gieben da0603089a gofmt -w 2011-07-23 23:43:43 +02:00
Miek Gieben a0b011799e documentation 2011-07-23 23:32:42 +02:00
Miek Gieben 7005b4932e add tsig secrets to the server as well 2011-07-06 09:25:05 +02:00
Miek Gieben 077c1ce596 Some documentation update 2011-07-05 21:08:22 +02:00
Miek Gieben 265ebba3ba fix the reflect server 2011-07-05 19:44:46 +02:00
Miek Gieben 052d36458d Fix the reflect server 2011-07-05 19:17:29 +02:00
Miek Gieben 9b1145a18c Fix reflect
This has lead so some other changes in server.go
2011-07-05 16:10:49 +02:00
Miek Gieben 9b6f66c1bb panic when no client handler is found 2011-07-04 22:27:23 +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 19bfc93c5a remove config.go 2011-04-18 22:08:12 +02:00
Miek Gieben afab5b1c10 async client library starting to exist 2011-04-12 21:44:56 +02:00
Miek Gieben f3e86f9157 Fix the matching function 2011-04-05 14:56:08 +02:00
Miek Gieben c46f003f76 begin a TsigWriter
The cleanest way for tsig
2011-04-04 20:54:25 +02:00
Miek Gieben d46e21bcbd dont set auth bit in refused responses 2011-04-03 13:58:34 +02:00
Miek Gieben 0241a65caa refused handler added 2011-04-03 13:43:46 +02:00
Miek Gieben 16be743198 cleanups 2011-04-03 13:30:25 +02:00
Miek Gieben 490bb0994a Fix tcp connection 2011-04-03 13:26:20 +02:00
Miek Gieben aecd28b71a simple server is working 2011-04-03 13:16:33 +02:00
Miek Gieben 064bfe4f2e it compiles + more tweaks 2011-04-03 11:49:23 +02:00
Miek Gieben c7dbb1edc2 It compiles again, but doesnt work yet 2011-04-03 11:14:54 +02:00
Miek Gieben 172331a23f completely break the api 2011-04-02 09:22:05 +02:00
Miek Gieben 751a50b4b6 more stuff 2011-04-01 13:15:36 +02:00
Miek Gieben b7671d7b48 playing with stuff 2011-04-01 10:53:31 +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 2a87f0719c doc update 2011-03-27 11:52:37 +02:00
Miek Gieben 55c41c82b7 Add more Conn wrappers 2011-03-27 11:45:01 +02:00
Miek Gieben f44bf2d656 Formatting 2011-03-24 09:24:24 +01:00
Miek Gieben 25bdf43f06 more documentation updates 2011-03-23 19:37:07 +01:00
Miek Gieben 3af023bda9 Use bufio.Reader in private key reading 2011-03-23 16:10:15 +01:00
Miek Gieben a7a8b616f0 fix reflect 2011-03-21 22:53:15 +01:00
Miek Gieben fd0704f111 Remove it 2011-03-21 18:37:11 +01:00
Miek Gieben b1f63f57c4 Read/Write works, but axfr still fails 2011-03-20 19:58:55 +01:00
Miek Gieben b722229700 start of server side (sending) AXFR 2011-03-18 14:13:42 +01:00
Miek Gieben aa7d08bc8a small updates 2011-03-15 23:12:20 +01:00
Miek Gieben 13ab14dd2f TCP: re-read until all promised bytes are read.
Works for long tcp packets
2011-02-27 15:50:01 +01:00
Miek Gieben ea49f7cca9 fix this server 2011-02-11 21:29:40 +01:00
Miek Gieben 58ccfe317b smaller api 2011-02-11 20:54:54 +01:00
Miek Gieben 00e55ef737 Again a new api 2011-02-11 20:29:04 +01:00
Miek Gieben 6ad68826eb also add error channel 2011-02-10 22:26:11 +01:00
Miek Gieben 392dd2f2df Fix documentation 2011-02-10 16:23:34 +01:00
Miek Gieben f1d995634c remove debug println 2011-02-09 21:45:56 +01:00
Miek Gieben 5c548a6e93 Fix a bunch of examples 2011-02-09 21:42:09 +01:00
Miek Gieben 7c76690ad3 It works 2011-02-09 18:14:51 +01:00
Miek Gieben 63c18cdb2e A better model
But now the routine seem to hang after 1 try
2011-02-09 18:06:37 +01:00
Miek Gieben 241d441371 fix the multiplexing 2011-02-09 17:59:06 +01:00
Miek Gieben 57f9f83091 pushed 2011-02-08 22:15:21 +01:00
Miek Gieben fd12b8a946 Doesnt work yet 2011-02-08 21:49:37 +01:00
Miek Gieben ea180d5051 All together now
Responder renamed to server and folded back into the
main dns package
2011-02-08 21:26:40 +01:00
Miek Gieben 7adcf8b240 rename 2011-02-08 21:25:25 +01:00
Miek Gieben 73cc848e00 remove these files, stay lean and mean 2010-12-28 08:29:17 +01:00
Miek Gieben 70552b49ca More stuff added, first stab at using hashing functions 2010-12-25 11:43:12 +01:00