mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 10:43:17 -04:00
Remove the word middleware (#1067)
* Rename middleware to plugin first pass; mostly used 'sed', few spots where I manually changed text. This still builds a coredns binary. * fmt error * Rename AddMiddleware to AddPlugin * Readd AddMiddleware to remain backwards compat
This commit is contained in:
22
plugin/bind/README.md
Normal file
22
plugin/bind/README.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# bind
|
||||
|
||||
*bind* overrides the host to which the server should bind.
|
||||
|
||||
Normally, the listener binds to the wildcard host. However, you may force the listener to bind to
|
||||
another IP instead. This directive accepts only an address, not a port.
|
||||
|
||||
## Syntax
|
||||
|
||||
~~~ txt
|
||||
bind ADDRESS
|
||||
~~~
|
||||
|
||||
**ADDRESS** is the IP address to bind to.
|
||||
|
||||
## Examples
|
||||
|
||||
To make your socket accessible only to that machine, bind to IP 127.0.0.1 (localhost):
|
||||
|
||||
~~~ txt
|
||||
bind 127.0.0.1
|
||||
~~~
|
||||
11
plugin/bind/bind.go
Normal file
11
plugin/bind/bind.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// Package bind allows binding to a specific interface instead of bind to all of them.
|
||||
package bind
|
||||
|
||||
import "github.com/mholt/caddy"
|
||||
|
||||
func init() {
|
||||
caddy.RegisterPlugin("bind", caddy.Plugin{
|
||||
ServerType: "dns",
|
||||
Action: setupBind,
|
||||
})
|
||||
}
|
||||
30
plugin/bind/bind_test.go
Normal file
30
plugin/bind/bind_test.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package bind
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/coredns/coredns/core/dnsserver"
|
||||
|
||||
"github.com/mholt/caddy"
|
||||
)
|
||||
|
||||
func TestSetupBind(t *testing.T) {
|
||||
c := caddy.NewTestController("dns", `bind 1.2.3.4`)
|
||||
err := setupBind(c)
|
||||
if err != nil {
|
||||
t.Fatalf("Expected no errors, but got: %v", err)
|
||||
}
|
||||
|
||||
cfg := dnsserver.GetConfig(c)
|
||||
if got, want := cfg.ListenHost, "1.2.3.4"; got != want {
|
||||
t.Errorf("Expected the config's ListenHost to be %s, was %s", want, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBindAddress(t *testing.T) {
|
||||
c := caddy.NewTestController("dns", `bind 1.2.3.bla`)
|
||||
err := setupBind(c)
|
||||
if err == nil {
|
||||
t.Fatalf("Expected errors, but got none")
|
||||
}
|
||||
}
|
||||
24
plugin/bind/setup.go
Normal file
24
plugin/bind/setup.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package bind
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
|
||||
"github.com/coredns/coredns/core/dnsserver"
|
||||
"github.com/coredns/coredns/plugin"
|
||||
|
||||
"github.com/mholt/caddy"
|
||||
)
|
||||
|
||||
func setupBind(c *caddy.Controller) error {
|
||||
config := dnsserver.GetConfig(c)
|
||||
for c.Next() {
|
||||
if !c.Args(&config.ListenHost) {
|
||||
return plugin.Error("bind", c.ArgErr())
|
||||
}
|
||||
}
|
||||
if net.ParseIP(config.ListenHost) == nil {
|
||||
return plugin.Error("bind", fmt.Errorf("not a valid IP address: %s", config.ListenHost))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user