wireguard.go 757 B

1234567891011121314151617181920212223242526272829
  1. package logic
  2. import (
  3. "github.com/gravitl/netmaker/models"
  4. )
  5. // IfaceDelta - checks if the new node causes an interface change
  6. func IfaceDelta(currentNode *models.Node, newNode *models.Node) bool {
  7. // single comparison statements
  8. if newNode.Address.String() != currentNode.Address.String() ||
  9. newNode.Address6.String() != currentNode.Address6.String() ||
  10. newNode.IsRelay != currentNode.IsRelay ||
  11. newNode.Connected != currentNode.Connected {
  12. return true
  13. }
  14. if newNode.IsRelay {
  15. if len(currentNode.RelayedNodes) != len(newNode.RelayedNodes) {
  16. return true
  17. }
  18. for _, node := range newNode.RelayedNodes {
  19. if !StringSliceContains(currentNode.RelayedNodes, node) {
  20. return true
  21. }
  22. }
  23. }
  24. return false
  25. }
  26. // == Private Functions ==