Skip to content

Commit

Permalink
embed: warn on domain name in listener
Browse files Browse the repository at this point in the history
  • Loading branch information
Anthony Romano committed Sep 13, 2016
1 parent fa2e9c2 commit c7212b4
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions embed/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package embed
import (
"fmt"
"io/ioutil"
"net"
"net/http"
"net/url"
"strings"
Expand Down Expand Up @@ -253,6 +254,13 @@ func (cfg *configYAML) configFromFile(path string) error {
}

func (cfg *Config) Validate() error {
if err := checkBindURLs(cfg.LPUrls); err != nil {
return err
}
if err := checkBindURLs(cfg.LCUrls); err != nil {
return err
}

// Check if conflicting flags are passed.
nSet := 0
for _, v := range []bool{cfg.Durl != "", cfg.InitialCluster != "", cfg.DNSCluster != ""} {
Expand Down Expand Up @@ -346,3 +354,27 @@ func (cfg Config) IsDefaultHost() (string, error) {
}
return "", defaultHostStatus
}

// checkBindURLs returns an error if any URL uses a domain name.
// TODO: return error in 3.2.0
func checkBindURLs(urls []url.URL) error {
for _, url := range urls {
if url.Scheme == "unix" || url.Scheme == "unixs" {
continue
}
host, _, err := net.SplitHostPort(url.Host)
if err != nil {
return err
}
if host == "localhost" {
// special case for local address
// TODO: support /etc/hosts ?
continue
}
if net.ParseIP(host) == nil {
err := fmt.Errorf("expected IP in URL for binding (%s)", url.String())
plog.Warning(err)
}
}
return nil
}

0 comments on commit c7212b4

Please sign in to comment.