2016-03-20 17:44:58 +00:00
|
|
|
// Package etcd provides the etcd backend.
|
|
|
|
|
package etcd
|
|
|
|
|
|
|
|
|
|
import (
|
2016-03-20 17:54:21 +00:00
|
|
|
"github.com/miekg/coredns/middleware"
|
2016-03-20 18:17:07 +00:00
|
|
|
"github.com/miekg/dns"
|
2016-03-20 17:44:58 +00:00
|
|
|
"github.com/skynetservices/skydns/singleflight"
|
|
|
|
|
|
2016-03-20 18:17:07 +00:00
|
|
|
etcdc "github.com/coreos/etcd/client"
|
2016-03-20 17:44:58 +00:00
|
|
|
"golang.org/x/net/context"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type (
|
|
|
|
|
Etcd struct {
|
2016-03-20 17:54:21 +00:00
|
|
|
Next middleware.Handler
|
|
|
|
|
|
|
|
|
|
client etcd.KeysAPI
|
|
|
|
|
ctx context.Context
|
|
|
|
|
inflight *singleflight.Group
|
2016-03-20 17:44:58 +00:00
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
2016-03-20 18:17:07 +00:00
|
|
|
func NewEtcd(client etcdc.KeysAPI, next middleware.Handler) Etcd {
|
2016-03-20 17:54:21 +00:00
|
|
|
return Etcd{
|
2016-03-20 18:17:07 +00:00
|
|
|
Next: next,
|
2016-03-20 17:44:58 +00:00
|
|
|
client: client,
|
2016-03-20 18:17:07 +00:00
|
|
|
ctx: context.Background(),
|
2016-03-20 17:44:58 +00:00
|
|
|
inflight: &singleflight.Group{},
|
|
|
|
|
}
|
|
|
|
|
}
|
2016-03-20 18:17:07 +00:00
|
|
|
|
|
|
|
|
func (e Etcd) ServerDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
|
|
|
|
|
return 0, nil
|
|
|
|
|
}
|