mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
embed: warn on domain name in listener
This commit is contained in:
parent
fa2e9c2449
commit
c7212b438d
@ -17,6 +17,7 @@ package embed
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
@ -253,6 +254,13 @@ func (cfg *configYAML) configFromFile(path string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cfg *Config) Validate() 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.
|
// Check if conflicting flags are passed.
|
||||||
nSet := 0
|
nSet := 0
|
||||||
for _, v := range []bool{cfg.Durl != "", cfg.InitialCluster != "", cfg.DNSCluster != ""} {
|
for _, v := range []bool{cfg.Durl != "", cfg.InitialCluster != "", cfg.DNSCluster != ""} {
|
||||||
@ -346,3 +354,27 @@ func (cfg Config) IsDefaultHost() (string, error) {
|
|||||||
}
|
}
|
||||||
return "", defaultHostStatus
|
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
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user