diff --git a/lighthouse.go b/lighthouse.go index 5e19d65..26e346c 100644 --- a/lighthouse.go +++ b/lighthouse.go @@ -53,6 +53,18 @@ func NewLightHouse(amLighthouse bool, myIp uint32, ips []string, interval int, n return &h } +func (lh *LightHouse) ValidateLHStaticEntries() (bool, error) { + for lhIP, _ := range lh.lighthouses { + for ip, _ := range lh.staticList { + if lhIP == ip { + continue + } + return false, fmt.Errorf("Lighthouse %s does not have a static_host_map entry", IntIp(lhIP)) + } + } + return true, nil +} + func (lh *LightHouse) Query(ip uint32, f EncWriter) ([]udpAddr, error) { if !lh.IsLighthouseIP(ip) { lh.QueryServer(ip, f) diff --git a/main.go b/main.go index ab23331..a261e9b 100644 --- a/main.go +++ b/main.go @@ -236,6 +236,11 @@ func Main(configPath string, configTest bool, buildVersion string) { } } + _, err = lightHouse.ValidateLHStaticEntries() + if err != nil { + l.Error(err) + } + handshakeManager := NewHandshakeManager(tunCidr, preferredRanges, hostMap, lightHouse, udpServer) //TODO: These will be reused for psk