Commit graph

516 commits

Author SHA1 Message Date
John Belamaric
2e366459c5 Use common TLS parsing routine for etcd (#476)
* Use common TLS parsing routine for etcd

Change to use the new common routine, and update the docs to reflect
the different options for passing TLS configuration.

* Move middleware/tls to middleware/pkg/tls

This was put in the wrong place originally.
2017-01-12 08:14:24 +00:00
Miek Gieben
94c59da577 Run tests in parallel (#478)
Create a small speedup running the tests:

PASS
ok  	github.com/miekg/coredns/test	10.329s

PASS
ok  	github.com/miekg/coredns/test	6.079s

Skip the etcd ones. Doing the middleware/*/*_test ones doesn't yield
any speedup as these are still done on a per directory basis.
2017-01-12 08:13:50 +00:00
Miek Gieben
0c3ad499d8 middleware/proxy: add read/writeDeadline (#477)
Add deadline to break the connection. We use the default of 5 seconds.
After this the backend is marked unhealthy and not used for some time.

Fixes #467
2017-01-11 21:23:57 +00:00
Chris O'Haver
0ee88d3007 Add insecure A records for pods (#475) 2017-01-11 21:23:10 +00:00
John Belamaric
b10a4f9075 Common tls (#474)
* Add common TLS config routines

These routines can be used to load TLS configs based upon the
args in the Corefile.

* Add common routine for Corefile arg handling

Add the NewTLSConfigFromArgs routine so that you can just pass
in the Corefile args and get a tls.Config. This ensures the
parameters are handled consistently across middleware.

* Change to varargs style params

Change to use args ...string instead of []string. Add
documentation of what each call means.
2017-01-10 10:18:34 -05:00
Miek Gieben
53ac25d1c3 Add middleware/erratic (#471)
This middleware allows playing with responses. Only one type is
implemented: it allows you to drop queries. I.e. withhold the response
from the client.
2017-01-06 09:42:30 +00:00
Chris O'Haver
9a5e0c64fd handle A/PTR/SRV for headless services/endpoints (#464)
* handle A/PTR/SRV for headless services/endpoints

* error early if _proto will produce nothing

* remove wc params + various style tweaks

* Release 004

* handle A/PTR/SRV for headless services/endpoints

* error early if _proto will produce nothing

* remove wc params + various style tweaks

* optimize srv prefix validation

* poking travis

* reduce response sizes, clean func params
2017-01-05 15:09:59 +00:00
Miek Gieben
c4ab98c6e3 Add middleware.NextOrFailure (#462)
This checks if the next middleware to be called is nil, and if so returns
ServerFailure and an error. This makes the next calling more robust and
saves some lines of code.

Also prefix the error with the name of the middleware to aid in
debugging.
2016-12-20 18:58:05 +00:00
Dmytro Kislov
8cb5a05798 Return no items if less than 3 items in service segments 2016-12-14 16:17:14 +00:00
Miek Gieben
5d2e4db99d middleware/file: include sigs in additional (#456)
When asked for the NSset include glue and possible sigs in the
additional section.

Fixes #411
2016-12-14 12:50:00 +00:00
Miek Gieben
187e1dc512 middleware/file: include nsset in replies
This is required so that a resolver can upade the referral NSset
with the NSset at the child.

Update tests as well.
2016-12-09 11:59:14 +00:00
Chris O'Haver
56d3b47d11 Add A lookup for headless services (#451) 2016-12-02 22:50:01 +00:00
Miek Gieben
8faa8354b4 Merge branch 'v4dns' 2016-11-30 20:45:23 +00:00
Miek Gieben
ada704e0ae middleware/httpproxy: disable v6 lookup
Don't lookup the AAAA dns.google.com.
2016-11-30 20:44:45 +00:00
Miek Gieben
b086e5f64d middleware/log: make {size} the length of the request (#449)
* middleware/log: make {size} the length of the request

{size} is the lenght of the request, {rsize} is the length of the
reply.

* Fix test
2016-11-30 20:44:00 +00:00
Miek Gieben
b85c6788dd Merge branch 'master' of github.com:miekg/coredns 2016-11-29 21:58:13 +00:00
Miek Gieben
8c8b37a30e middleware/metrics: export actual size (#448)
The `*_size*` metrics now export the actual packet length, not the
advertised one (although that might be nice as well).
2016-11-29 11:02:43 +00:00
Miek Gieben
4cfd19c7c9 middleware/httpproxy: add debug queries (#446)
* middleware/httproxy: implement debug queries

Not too useful at the moment, but o-o.debug queries are supported
and return the Comment from dns.google.com.

Note that this is not always set.

* improve documentation

* Testing cleanups
2016-11-29 09:54:57 +00:00
Miek Gieben
0876a38cd9 middleware/httproxy: smaller timeouts
Make the timeouts smaller after we fail to connect.
2016-11-27 15:24:50 +00:00
Miek Gieben
96222927a3 middleware/httpproxy: Add (#439)
This PR adds a middleware that talks to dns.google.com over HTTPS,
meaning all your DNS traffic is encrypted when traversing your ISP and
the internet.

The `dns.google.com` address is re-resolved every 30 seconds.
2016-11-26 17:57:22 +00:00
Miek Gieben
f8b9332265 Use upstream parsing from master branch (#438) 2016-11-24 22:31:42 +01:00
Miek Gieben
a951fee291 merge conflict fixed 2016-11-24 21:51:38 +01:00
Miek Gieben
4a8db8a4ce middleware/proxy: config syntax cleanups (#435)
* middleware/proxy: config syntax cleanups

Allow port numbers to be used in the transfer statements and clean
up the proxy stanza parsing. Also allow, when specifying an upstream,
/etc/resolv.conf (or any other file) to be used for getting the upstream
nameserver.

Add tests and fix the documentation to make clear what is allowed.

* Fix the other upstream parse as well
2016-11-24 16:57:20 +01:00
Miek Gieben
ec2138b21c middleware/file: better notify error reporting
Report errors as originating from notifies in all cases.

Fixes #412
2016-11-24 15:04:27 +00:00
Mark Nevill
1cf5e56d5a Propagate both message and error in proxy exchange. 2016-11-23 19:09:35 +00:00
Miek Gieben
25c57ea314 Merge pull request #428 from johnbelamaric/k8s-fix-ptr
K8s Test Cleanup and Service PTR
2016-11-16 10:20:34 +00:00
Miek Gieben
b827c691bb middleware/auto: Close to reader
Close the reader, stop leaking file descriptors.
2016-11-16 10:16:56 +00:00
John Belamaric
afe4368c34 K8s Test Cleanup and Service PTR
Change the CI setup for K8s to be simpler. Now it just creates a
set of objects via a yaml file, making it very easy to modify
the tests.

Implement PTR for services.
2016-11-15 01:35:24 +00:00
Michael Grosser
ecbb6baccd Add docs
Provide TTL examples for cache middleware. Fixes: #364

Add interaction docs to make non invalidation for cache middleware
clear. Cache might serve stale records. Fixes: #403
2016-11-14 16:06:41 +00:00
Yong Tang
137fc33b8f Fix several typos in docs. (#426)
Fixes several typos in docs.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-11-14 07:25:17 +00:00
Michael Grosser
ece3cf8ecf Fix various issues with formatting and typos (#424)
* Fix typos

* Simplify code

* Fix error usage
2016-11-13 14:03:12 +00:00
Miek Gieben
651f3938a1 More idiomatic Go 2016-11-11 16:56:15 +00:00
Chris O'Haver
96206cdbc3 Return NXDOMAIN when no items match query (#422)
* When no records match, reply with NXDOMAIN

* Implement in IsNameError

* case for unexposed namespace. k8s integation tests

* Fix imports order. Lower case of err strs.
2016-11-10 21:24:06 +00:00
Miek Gieben
8dd47dd932 Remove some printlns 2016-11-10 14:09:49 +00:00
Miek Gieben
9328a8e7a4 Compile fixes and make it work 2016-11-10 12:58:40 +00:00
Miek Gieben
d383f279a0 Implement external lookups for CNAMEs 2016-11-10 07:48:47 +00:00
Miek Gieben
0919216d3c middleware/{file, auto}: resolve external CNAMEs
Do the same thing as in etcd and give the option of externally resolving
CNAME. This is needed when CoreDNS is a proxy as well is serving zones.
2016-11-09 21:26:49 +00:00
Chris O'Haver
48e1909218 Add type to default template 2016-11-09 21:07:27 +00:00
Michael Grosser
a8287bb04d middleware/log cleanup readme (#413) 2016-11-09 13:02:06 +00:00
Miek Gieben
e210b06e89 middleware/file: also react to rename events. (#406)
* middleware/file: also react to rename events.

* React to all events
2016-11-09 10:02:52 +00:00
Miek Gieben
4ef53081c5 middleware/file: Add CNAME chain support (#400)
Up till now we would only chase 1 CNAME. Spec requires we will chase
all. This PR add support for this.  Up to 8 CNAMEs are chased (this
could be longer, by just checking for cycles, but 8 seems enough for
now).

Also add RRSIG of the first CNAME for DNSSEC.
2016-11-09 10:02:26 +00:00
Miek Gieben
6abbe231e5 middleware/cache: cache 0 will be capped at 5 (#408)
* middleware/cache: cache 0 will be capped at 5

cache 0 would return TTL=0 records, up that to the documented minimum of
5 seconds.

* middleware/cache: check for 0 TTL

Handle 0 TTL differently and return an error, we might need to
special case this in the future.
2016-11-09 10:01:26 +00:00
Miek Gieben
0f8cb5094d middleware/file: notify better error reporting
Slightly better errors reporting for failing to sent a notify.
2016-11-08 21:45:27 +00:00
Miek Gieben
fb7fcff982 middleware/file|auto: Notifies and AXFR (#399)
Be more explicit in the logs when a notify fails.
New notify error message looks like:

2016/11/07 18:21:42 [ERROR] Notify for zone "example.org." was not accepted by "8.8.8.8:53": rcode was "SERVFAIL"

Correctly pick up secondaries

When multiple secondary are specified make sure they are picked up.

Fixes #393 #398
2016-11-07 19:15:21 +00:00
Miek Gieben
e89c4b5c28 middleware/cache: only cache query and responses (#397)
Extent typify to check the transfers, dynamic updates and notifies.
Extend *cache* to not put these in the cache.

Fixes #393
2016-11-07 16:27:50 +00:00
John Belamaric
4318dfbf02 Fix Kubernetes Watches (#392)
The watchers were still trying to process raw v1 objects which
failed to be added to the store. This meant new services and
namespaces created after CoreDNS started would not be discoverable.

Add a filter function that converts watch events with v1 objects
to events with api objects.
2016-11-07 16:21:24 +00:00
Miek Gieben
3d5be649a2 Issue 388 (#389)
* add extra test

* middleware/auto: fix crash when calling empty handler

Don't call the next middleware, we should be auth. for this zone
getitng into this path we should respond with ServFail.

Fixes #388
2016-11-07 11:12:20 +00:00
Miek Gieben
0f22d32191 Fix compilation error 2016-11-07 10:33:48 +00:00
Miek Gieben
d03c0b9932 finish missing watcher check (#387) 2016-11-07 08:00:30 +00:00
Miek Gieben
fc85754849 Golint (#386)
Lint and vet the curret code add docs about adding a git post-commit
hook that performs these actions after each commit.
2016-11-07 07:43:38 +00:00