From 2f75075da3812ed5273df34758535fcf8fc4355d Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 6 Nov 2018 14:28:57 +0000 Subject: [PATCH] Fix Yggdrasil subnet routing --- src/yggdrasil/ckr.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/yggdrasil/ckr.go b/src/yggdrasil/ckr.go index baa0058c..ccedc649 100644 --- a/src/yggdrasil/ckr.go +++ b/src/yggdrasil/ckr.go @@ -1,6 +1,7 @@ package yggdrasil import ( + "bytes" "encoding/hex" "errors" "fmt" @@ -49,15 +50,12 @@ func (c *cryptokey) isValidSource(addr address) bool { ip := net.IP(addr[:]) // Does this match our node's address? - if addr == c.core.router.addr { + if bytes.Equal(addr[:16], c.core.router.addr[:16]) { return true } // Does this match our node's subnet? - var subnet net.IPNet - copy(subnet.IP, c.core.router.subnet[:]) - copy(subnet.Mask, net.CIDRMask(64, 128)) - if subnet.Contains(ip) { + if bytes.Equal(addr[:8], c.core.router.subnet[:8]) { return true }