Matthias Radestock
52a89a318a
cosmetic: resolve yet more linter complaints
2015-05-11 02:44:15 +01:00
Alvaro Saurin
ba98135e03
Return NOTIMP for some unimplemented query types, NXDOMAIN otherwise
2015-05-05 21:31:11 +02:00
Alvaro Saurin
d7c154ea41
Removed the "now" parameters and use an external clock provider
2015-04-28 12:02:49 +02:00
Matthias Radestock
ce4c79ed93
refactor: extract commonQueryHandler
...
to remove duplication between queryHandler and rdnsHandler
2015-04-26 12:40:34 +01:00
Matthias Radestock
cb42ec358e
even more alignment between queryHandler and rdnsHandler
...
in preparation of extracting common helper function
2015-04-26 11:40:28 +01:00
Matthias Radestock
1a35b5aa2b
align queryHandler and rdnsHandler
...
increasing their similarity in preparation of refactor
2015-04-26 11:20:44 +01:00
Alvaro Saurin
58c8945b32
Support "insistent" queries in the mDNS client, used for obtaining all possible responses from mDNS servers.
...
Support for multiple responses from Lookup*() methods
Support for multiple records when building packets with make*() methods
Use a common "ZoneRecord" interface for structs that contain names and IPs
2015-04-23 13:01:29 +02:00
Tom Wilkie
f735082d95
Fix gofmt errors in nameserver.
2015-04-17 11:42:29 +00:00
Adam Harrison
7f434d71e1
Merge pull request #532 from inercia/weave-225-fix-2
...
Fix in WeaveDNS: do not modify cache when getting a reply
2015-04-13 14:20:40 +01:00
Adam Harrison
29b3b91423
Merge pull request #501 from inercia/weave-225-fix-1
...
Fix for negative TTLs in WeaveDNS
2015-04-13 14:19:47 +01:00
Alvaro Saurin
7811e2b470
Improved log messages
2015-04-09 16:19:05 +02:00
Alvaro Saurin
5d5b101707
Set locally resolved queries as Authoritative
2015-04-09 16:19:05 +02:00
Alvaro Saurin
186481052d
Catch unsupported queries by using the cache
2015-04-09 16:18:55 +02:00
Alvaro Saurin
6f545a4296
Fix for negative TTLs by using a different lookups set depending on the value stored in the cache.
2015-04-09 16:17:19 +02:00
Bryan Boreham
8a82f368d0
Update repository name from zettio to weaveworks
2015-04-08 16:35:52 +01:00
Matthias Radestock
10f37db9da
tidy up DNSServer fields
...
- make Zone, Iface and Upstream public - this is safe and makes sense
since all are immutable, and the former two are passed to the
constructor and are thus known anyway, and the latter is derived
from external information
- remove IfaceName - we can just use Iface instead
- log Upstream on startup
2015-03-31 12:04:31 +01:00
Matthias Radestock
2500bc210a
cosmetic: more linting
2015-03-27 01:21:36 +00:00
Matthias Radestock
1ad950f177
cosmetic: more linting
2015-03-27 01:12:16 +00:00
Matthias Radestock
45740b1419
refactor: replace buf.WriteString(fmt.S*(...)) with fmt.F*(&buf,...)
...
shorter and more efficient
2015-03-26 14:20:28 +00:00
Alvaro Saurin
9dcec8ca16
basic DNS cache
...
unit tests
2015-03-24 12:44:01 +01:00
Adam Harrison
c36543a247
Include DNS server config in status
2015-03-17 15:41:01 +00:00
David Wragg
cda6b8d582
Fix a few deviations from go fmt
2015-03-05 13:56:21 +00:00
Alvaro Saurin
4682f7ed95
zettio/weave#366 - removed reference to DNSServerConfig in the DNSServer struct
2015-02-27 15:40:32 +01:00
Alvaro Saurin
007873a402
zettio/weave#366 - keep the DNSServerConfig inmutable
2015-02-27 12:22:08 +01:00
Alvaro Saurin
0bc3e333f8
zettio/weave#366 - minor: fixed a typo and removed some superfluous code
2015-02-26 10:51:48 +01:00
Alvaro Saurin
403520f4b6
zettio/weave#366 - move more initialization code to the constructor
2015-02-26 10:51:48 +01:00
Alvaro Saurin
bbd69170f9
zettio/weave#366 - improved configuration for th DNSServer, where we can specify the local domain name among other things... (missing some unit tests for this customized local domain)
2015-02-26 10:51:48 +01:00
Alvaro Saurin
419138ec6a
zettio/weave#362 - use a WaitGroup for the TCP/UDP goroutines: otherwise, WeaveDNS server just quits
2015-02-23 13:17:54 +01:00
Alvaro Saurin
3de924fa2f
zettio/weave#362 - moved Check*() to common
2015-02-23 13:17:54 +01:00
Alvaro Saurin
5dd475b2e5
zettio/weave#362 - fix DNSServer initialization
...
removed a couple of goroutines spawns...
2015-02-23 13:17:54 +01:00
Alvaro Saurin
ef72d65aa4
zettio/weave#362 - use for fallback queries the same protocol clients have used for querying us.
2015-02-23 13:17:54 +01:00
Alvaro Saurin
9c7ffd9b81
zettio/weave#362 - improve the unit tests for the TCP server by checking if we get all the responses with TCP when a previous UDP query resulted in a truncated response.
2015-02-23 13:17:54 +01:00
Alvaro Saurin
c81769cc9a
zettio/weave#362 - implement a graceful shutdown
2015-02-23 13:17:54 +01:00
Alvaro Saurin
c1f9c8bc10
zettio/weave#362 - new constructor for creating a DNS server with a given config
...
fix unit tests by using the new constructor
2015-02-23 13:17:54 +01:00
Alvaro Saurin
3be5600383
zettio/weave#362 - reorganize the DNS server code, so it looks like the mDNS server, with a proper class with Start() and so...
...
Listen on TCP on port 53 by default
2015-02-23 13:17:54 +01:00
Michael Bridgen
1f9e321097
Merge branch '360_dns_buffer' of https://github.com/bboreham/weave into pr361
2015-02-04 16:35:14 +00:00
Bryan Boreham
04a7aa1405
Use buffer size 4096 on advice from a DNS expert
2015-02-04 14:58:21 +00:00
Matthias Radestock
9c3d509b10
cosmetics
...
suggested by linter
2015-02-03 14:46:35 +00:00
Bryan Boreham
458ef12da6
Use a larger buffer than the default, so that more queries will succeed
2015-02-02 13:26:44 +00:00
Bryan Boreham
e5a08a505d
Change DNS fallback test to use a locally-run server to generate long responses reliably
2015-02-02 13:24:37 +00:00
Bryan Boreham
9ae3f4c692
Only read /etc/resolv.conf once
2015-02-02 13:16:05 +00:00
Michael Bridgen
db9bae4162
Use the fallback for reverse lookups too
...
I considered a couple of different factorings, that is
* Implementing the fallback as a Lookup
* Having a server struct that held the resolv.conf and methods for
handling queries
but ultimately, this is simple and works.
2015-01-14 16:44:12 +00:00
Michael Bridgen
ff45bcf945
Change Lookup method names
...
The Local was redundant (and inaccurate in the case of the mDNS client
implementation), and otherwise they are too nondescript.
2015-01-12 17:42:23 +00:00
Michael Bridgen
5f642d390c
Pass queries for non-local names on to the configured nameserver
2015-01-12 17:12:15 +00:00
Michael Bridgen
b114735a41
Reform logging in weaveDNS
...
* Put prefixes (including msg IDs) in front of log messages to
distinguish them
* Failed lookups get logged under Info as per issue #311
* More accurate messages as per issue #311
2015-01-09 12:49:07 +00:00
Bryan Boreham
bd2844d186
Split http-startup code from server-startup
2015-01-08 18:38:38 +00:00
Michael Bridgen
bf752d2d1f
Implement zone lookup with MDNSCLient
...
This separates Zone into the DB ops and the Lookup ops, and implements
the latter for MDNSClient so it can be used just like the zonedb.
A notable change is that Lookup methods only ever return one result,
while MDNSClient.SendQuery could in theory return multiple results
(though it wouldn't, because no server would supply more than one
result in a response, and it stops waiting after getting one response
..).
ReverseLookupLocal is implemented even though no MDNSServer will
answer at present (hence no test yet).
Lastly, the handler (creating) functions can now be given a list of
Lookup implementations to try in order.
2015-01-08 13:39:33 +00:00
Michael Bridgen
3866bd5e63
Parse reverse address lookup IPs in the Zone
...
.. rather than making clients of the zone do it. At the minute there's
only one call site, but soon there will be more.
2015-01-08 13:39:33 +00:00
Bryan Boreham
82b54aabcd
Move logging, updating and testing utils into common directory
2015-01-02 14:49:49 +00:00
Matthias Radestock
2680e594dd
rename
2014-11-28 16:27:11 +00:00