Browse Source

add an error (non fatal) when a lighthouse host has no static entry

Ryan Huber 5 years ago
parent
commit
83d2550b2d
2 changed files with 17 additions and 0 deletions
  1. 12 0
      lighthouse.go
  2. 5 0
      main.go

+ 12 - 0
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)

+ 5 - 0
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