From 151969bdd76f3c8b66c09ee0e9a593f46f047b49 Mon Sep 17 00:00:00 2001 From: bcmmbaga Date: Thu, 15 Aug 2024 10:49:45 +0300 Subject: [PATCH] Update network map diff logic with custom comparators --- management/server/updatechannel.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/management/server/updatechannel.go b/management/server/updatechannel.go index 0db5b323b..939b8e5db 100644 --- a/management/server/updatechannel.go +++ b/management/server/updatechannel.go @@ -6,6 +6,7 @@ import ( "sync" "time" + "github.com/netbirdio/netbird/management/server/differs" "github.com/netbirdio/netbird/management/server/posture" "github.com/r3labs/diff" log "github.com/sirupsen/logrus" @@ -236,13 +237,17 @@ func isNewPeerUpdateMessage(lastSentUpdate, currUpdateToSend *UpdateMessage) (bo return true, nil } - changelog, err = diff.Diff(lastSentUpdate.NetworkMap, currUpdateToSend.NetworkMap) + differ, err := diff.NewDiffer( + diff.SliceOrdering(true), + diff.CustomValueDiffers(differs.NewNameServerComparator(), differs.NewRouteComparator()), + ) + if err != nil { + return false, err + } + + changelog, err = differ.Diff(lastSentUpdate.NetworkMap, currUpdateToSend.NetworkMap) if err != nil { return false, fmt.Errorf("failed to diff network map: %v", err) } - if len(changelog) > 0 { - return true, nil - } - - return false, nil + return len(changelog) > 0, nil }