Commit Graph

265 Commits

Author SHA1 Message Date
Miek Gieben 0aa3021a83 Remove all copyright notices
Use the central COPYRIGHT file.
2014-09-11 20:57:37 +01:00
Miek Gieben fbc3e49b78 Some documentation updates 2014-09-02 10:31:15 +00:00
Miek Gieben ebc5489482 Fix datarace in Start/Shutdown
Add mutex and guard a 'started' boolean as well as the stopUDP
and tcpTCP channels so that 'go test -race' does not trigger.

Closes #111, closes #114
2014-08-30 10:34:44 +01:00
Alex Sergeyev fce659ba46 Restored code when shutdown needs an exchange...
Clients sents NULL-packet to server which helps to avoid
timeout. Timeout is still possible to encounter.
Shutdown will likely report error for those cases.
2014-08-29 14:27:53 -04:00
Alex Sergeyev c618657d9b Dealt with race condition detector warnings:
* stopped obvious race condition with replacing handler in
  ServingLargeResponses test
* lowered probability of other race conditions with test code
  while test server is yet activating
* fixed errmessage in Shutdown
2014-08-29 14:10:05 -04:00
Alex Sergeyev ef07b9a69a Following up in introducing getReadTimeout() 2014-08-29 12:26:23 -04:00
Alex Sergeyev f735bb9dcb Changed how shutdown works...
Now stopXXX event will stop any reading on currently open
socket and terminate reading loop. No special client/server
message is required anymore.
2014-08-29 12:24:11 -04:00
Alex Sergeyev 32d6e5396e Continued removing Sleeping tests:
* incorporated @miekg suggestions on switch vs if
* for now moved reaction to stopXXX channel messages until
  after the packet is responded to avoid client timeout in
  Shutdown (causing 2 sec. hanged thread)

Still not great how the abort logic is implemented....
2014-08-29 08:31:27 -04:00
Alex Sergeyev 4b21f37064 Proposed way of creating no-timeout tests and...
... fix for Server.Shutdown() function.
2014-08-28 23:11:49 -04:00
Miek Gieben 2127b822dd Add comment about Systemd 2014-08-28 07:54:23 +00:00
Miek Gieben f0bd4137e2 Make Shutdown return error
This will be handy in feature, so that we can add a 1 second
timeout and then return failure.
2014-08-20 15:12:59 +00:00
Miek Gieben 01bbcbef60 Update documentation for Shutdown.
This completes issue #101.
Fixes #101
2014-08-19 22:08:13 +01:00
Miek Gieben eed2b9aeec Fix Shutdown 2014-08-19 21:56:37 +01:00
Miek Gieben f912994258 Don't relay on deadline to stop the server.
We just send ourselves an UDP or TCP packet so that the listener fails
through and picks up the quit bool send on the channel.
2014-08-19 21:46:00 +01:00
Miek Gieben 6c631cd4ff Implement Shutdown()
This is working for TCP, but for UDP the Read does not honor the
deadline settings.
2014-08-19 09:25:41 +00:00
Miek Gieben 292c925c9f update documentation 2014-08-18 22:21:02 +01:00
Miek Gieben 0d300b1fce Add deadline to the listeners
Call this deadline to the listener will timeout and we will get to
so if the server should shutdown.
2014-08-18 22:14:29 +01:00
Miek Gieben f3a6c86462 Implement Shutdown() call
And fix some tests to call Fatal().
2014-08-18 22:06:29 +01:00
Miek Gieben 6cf24a5637 Add a Shutdown method to server.
Allow gracefull shutdown of a server.
2014-08-18 20:30:10 +01:00
Miek Gieben eb2d26cb96 Remove Pool from server.
A noop for some time, remove it.
2014-08-18 20:29:54 +01:00
Miek Gieben fb3a1585ad fmt 2014-07-27 20:38:11 +01:00
Luke Young 0a6f133b26 Match format of other code 2014-07-27 10:44:39 -07:00
Luke Young 12f91af6ed Added ResponseWriter.LocalAddr support 2014-07-27 10:43:07 -07:00
Miek Gieben 62ee88c895 Documentation 2014-07-22 08:27:59 +01:00
Miek Gieben e1cb18539a Systemd support
Rename StartAndServe to ActivateAndServe and only use one PacketConn or
Listener. This just adds a new entry point into starting a server.
2014-07-21 15:24:55 +01:00
Miek Gieben d80ad4aae5 Add support for systemd socket activation 2014-07-18 20:32:17 +01:00
Miek Gieben d161b9087e Cleanup the PR a bit
Remove code and simplify some functions. Documentation is still on the
todo.
Also don't export any of these functions and/or types.
2014-07-09 21:02:21 +01:00
Omri Bahumi dea4cb300a [ISSUE-95] Send replies from the right source IP address
Fixes #95
2014-07-07 18:16:42 +03:00
Miek Gieben 2ec512f89b server: pool: remove pool implementation
Quite a lot of code for a tiny improvement. Lease the Pool boolean
option in server so current code does not break. Will be removed
in later versions.
2014-04-10 12:59:50 +00:00
Miek Gieben 8e37d3660d Merge branch 'master' of github.com:miekg/dns 2014-01-07 07:45:29 +00:00
Miek Gieben 560a1c65b0 update license in pool.go
remove some build lines as I have no idea what they are
supposed to be doing.
2014-01-06 10:00:25 +00:00
Miek Gieben aafa94f352 better docs 2014-01-05 19:45:30 +00:00
Miek Gieben ac2ee587b1 Pool cleanups, readd wait for TCP 2014-01-05 16:29:07 +00:00
Miek Gieben 05ace47df8 Start of better documentation 2014-01-05 14:14:19 +00:00
Miek Gieben 5c37b9e564 Merge conflict resolved 2014-01-05 14:09:03 +00:00
Miek Gieben 8954a6e7c5 Remove debug logging 2014-01-05 13:51:59 +00:00
Miek Gieben 77345b2073 Don't set timeout
This leads to fake connection in the udp query handling.
2014-01-05 13:41:40 +00:00
Miek Gieben 49ece3e490 Add a memory pool
Re-use memory for UDP queries.
2014-01-05 13:39:33 +00:00
Miek Gieben f094f37de3 Add shortbuf erorr too
Cleanup the pull request a bit.
2014-01-04 11:17:13 +00:00
Miek Gieben b1f108f79c Simplify client TCP write.
Use the same patch as in the server.
2014-01-04 08:30:08 +00:00
Armon Dadgar 0cf549278c Simplify the Write() for TCP based connections
Simplify the code path by using io.Copy to handle partial writes. Allocate `l` large enough to avoid a re-allocation. Potential short write fix.
2014-01-03 15:19:35 -08:00
Andrew Tunnell-Jones 58bb85e9b4 ServeMux's match should only case fold A-Z 2013-12-14 09:04:29 +00:00
Miek Gieben 39c7a972c3 typo in doc 2013-10-26 21:36:43 +01:00
Miek Gieben 717a8179f5 Use recommendation from RFC5966 and set idle timeout much lower 2013-10-19 22:00:17 +01:00
Miek Gieben 949e660b37 Better comments 2013-10-19 11:44:13 +01:00
Miek Gieben 3b832a072a Add TODO 2013-10-19 11:10:51 +01:00
Miek Gieben 08578961f5 Add a limit after which the connection is closed 2013-10-19 10:18:20 +01:00
Miek Gieben 5eca59c9e7 Correctly implement multiple queries over 1 tcp conn.
Completely transparant give users another query to handle.
2013-10-18 23:06:28 +01:00
Miek Gieben ed0b128bd2 Add some groundwork for implementing rfc5966 recommendations 2013-10-18 11:59:19 +00:00
Miek Gieben 5e674212d0 Nobody uses these author/version handlers, kill them 2013-10-17 20:23:30 +01:00
Miek Gieben 145242b519 Cleanup the defer from serve()
Close the connection when returning.
2013-10-16 21:45:29 +01:00
Miek Gieben 075c815ff1 Fix udp handling
Make the Close() for the udp message a nop, as closing it would
close the udp listener.
Make the serve function simpler as this does not need to be in a
for-loop.
2013-10-16 21:38:11 +01:00
Miek Gieben 104d9bf0ba remove mutex here 2013-10-15 20:44:55 +01:00
Miek Gieben 68083bc956 Fix merge conflict from net branch 2013-10-12 17:59:46 +01:00
Eric Gavaletz 41945815b8 Further patching for GAE compatibility.
Since net.ListenTCP, net.ListenUDP and net.TCPListener are not defined
in the GAE standard library these build flags will stop those files from
being imported.  A better solution would have been to break up this
monolithic package into smaller parts.
2013-10-02 11:50:35 -04:00
Miek Gieben 9a38f97391 Fix timeouts, Tsig and EDNS0 update size 2013-09-29 11:21:18 +01:00
Miek Gieben 2b6e9122bd Use the better name: SingleInflight 2013-09-06 09:49:07 +00:00
Miek Gieben ac0703bbe6 Handle MixCase queries again.
Thanks Ask for reporting.
2013-07-25 08:32:10 +01:00
Miek Gieben baa7ca4a82 Fix as212 server 2013-06-22 21:40:19 +01:00
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