diff --git a/controllers/common.go b/controllers/common.go index b5f4a1d4..5aad8580 100644 --- a/controllers/common.go +++ b/controllers/common.go @@ -23,8 +23,9 @@ func GetPeersList(networkName string) ([]models.PeersResponse, error) { if err != nil { log.Println(err) } - udppeers, errN := serverctl.GetPeers(networkName) + udppeers, errN := database.GetPeers(networkName) if errN != nil { + log.Println("failed to collect udp peers") log.Println(errN) } for _, value := range collection { @@ -47,9 +48,11 @@ func GetPeersList(networkName string) ([]models.PeersResponse, error) { if node.UDPHolePunch == "yes" && errN == nil { endpointstring := udppeers[peer.PublicKey] endpointarr := strings.Split(endpointstring, ":") + log.Println("got values:",endpointstring,endpointarr) if len(endpointarr) == 2 { port, err := strconv.Atoi(endpointarr[1]) if err == nil { + log.Println("overriding:",endpointarr[0],int32(port)) peer.Endpoint = endpointarr[0] peer.ListenPort = int32(port) } @@ -233,6 +236,25 @@ func NodeCheckIn(node models.Node, networkName string) (models.CheckInResponse, err = fmt.Errorf("%w; Couldnt Get Node "+node.MacAddress, err) return response, err } + + if parentnode.Name == "netmaker" { + if NotifyNetworkCheck(networkName) { + err := SetNetworkNodesLastModified(networkName) + if err != nil { + log.Println(err, "could not notify network to update peers") + } + } + return models.CheckInResponse{ + Success:true, + NeedPeerUpdate:false, + NeedKeyUpdate: false, + NeedConfigUpdate:false, + NeedDelete:false, + NodeMessage:"", + IsPending:false, + }, nil + } + if parentnode.IsPending == "yes" { err = fmt.Errorf("%w; Node checking in is still pending: "+node.MacAddress, err) response.IsPending = true @@ -260,14 +282,6 @@ func NodeCheckIn(node models.Node, networkName string) (models.CheckInResponse, if nkeyupdate < gkeyupdate { response.NeedKeyUpdate = true } - if parentnode.Name == "netmaker" { - if NotifyNetworkCheck(networkName) { - err := SetNetworkNodesLastModified(networkName) - if err != nil { - log.Println(err, "could not notify network to update peers") - } - } - } if time.Now().Unix() > parentnode.ExpirationDateTime { response.NeedDelete = true diff --git a/database/statics.go b/database/statics.go index 6ec73d51..afded7a5 100644 --- a/database/statics.go +++ b/database/statics.go @@ -16,14 +16,19 @@ func SetPeers(newPeers map[string]string, networkName string) bool { } return !areEqual } - -func PeersAreEqual(toCompare map[string]string, networkName string) bool { +func GetPeers(networkName string) (map[string]string, error) { record, err := FetchRecord(PEERS_TABLE_NAME, networkName) if err != nil { - return false + return nil, err } currentDataMap := make(map[string]string) err = json.Unmarshal([]byte(record), ¤tDataMap) + return currentDataMap, err +} + + +func PeersAreEqual(toCompare map[string]string, networkName string) bool { + currentDataMap, err := GetPeers(networkName) if err != nil { return false }