diff options
Diffstat (limited to 'plugin/tls/tls.go')
-rw-r--r-- | plugin/tls/tls.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/plugin/tls/tls.go b/plugin/tls/tls.go new file mode 100644 index 000000000..e0958a9aa --- /dev/null +++ b/plugin/tls/tls.go @@ -0,0 +1,37 @@ +package tls + +import ( + "github.com/coredns/coredns/core/dnsserver" + "github.com/coredns/coredns/plugin" + "github.com/coredns/coredns/plugin/pkg/tls" + + "github.com/mholt/caddy" +) + +func init() { + caddy.RegisterPlugin("tls", caddy.Plugin{ + ServerType: "dns", + Action: setup, + }) +} + +func setup(c *caddy.Controller) error { + config := dnsserver.GetConfig(c) + + if config.TLSConfig != nil { + return plugin.Error("tls", c.Errf("TLS already configured for this server instance")) + } + + for c.Next() { + args := c.RemainingArgs() + if len(args) != 3 { + return plugin.Error("tls", c.ArgErr()) + } + tls, err := tls.NewTLSConfig(args[0], args[1], args[2]) + if err != nil { + return plugin.Error("tls", err) + } + config.TLSConfig = tls + } + return nil +} |