Use IsDomainName (#119)

Liberal as it as it still has its use. Reject invalid domain names
in the config.

Unrelated: clear up the README as well. And fix travis script.
This commit is contained in:
Miek Gieben
2016-04-13 23:23:35 +01:00
parent da447e28f4
commit 8184328dba
4 changed files with 25 additions and 10 deletions

View File

@@ -390,8 +390,8 @@ type Input interface {
}
// TestServer returns a test server.
// The port can be retreived with ... . The testserver itself can be stopped
// with Stop(). It just takes a normal Corefile input, but doesn't use the port.
// The ports can be retreived with server.LocalAddr(). The testserver itself can be stopped
// with Stop(). It just takes a normal Corefile as input.
func TestServer(t *testing.T, corefile string) (*server.Server, error) {
cdyfile := CaddyfileInput{Contents: []byte(corefile)}

View File

@@ -1,6 +1,7 @@
package parse
import (
"fmt"
"net"
"os"
"path/filepath"
@@ -320,6 +321,14 @@ func standardAddress(str string) (address, error) {
// no error check here; return err at end of function
}
if len(host) > 255 {
return address{}, fmt.Errorf("specified address is too long: %d > 255", len(host))
}
_, d := dns.IsDomainName(host)
if !d {
return address{}, fmt.Errorf("host is not a valid domain: %s", host)
}
// see if we can set port based off scheme
if port == "" {
port = "53"