From 5d65ad3e4b7bd64be1beac69e63c667e1891bd38 Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Thu, 30 Jan 2025 10:51:28 +0200 Subject: [PATCH] fix node-node-sync routing --- net/lux_router.go | 7 +++++-- node/lux_node.go | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/net/lux_router.go b/net/lux_router.go index 5c373df..81c5815 100644 --- a/net/lux_router.go +++ b/net/lux_router.go @@ -335,7 +335,11 @@ func (r *LuxRouter) Recv() (LuxPacket, error) { } } else { // on the node, we always operate by target ID - routeId = &route.Target + // routeId = &route.Target + + // Above statement is not the case anymore, as nodes use same LuxRouteTypeFromSource + // type of routing that allows not using target node key AND solves route identification issues + routeId = &key.Id } if !bytes.Equal(packet.Target.UUID[:], routeId.UUID[:]) { @@ -449,7 +453,6 @@ func (r *LuxRouter) Multicast(packet LuxPacket, group proto.LuxType) error { targetKey, _ := r.keyStore.Get(route.Target) if targetKey.Type == group { - packet.Target = key.Id packet.Nonce = GenerateLuxNonce() dgram, err := EncryptLuxPacket(packet, key, route.Destination) if err != nil { diff --git a/node/lux_node.go b/node/lux_node.go index 182ea56..39ffe1a 100644 --- a/node/lux_node.go +++ b/node/lux_node.go @@ -217,7 +217,8 @@ func (node *LuxNode) handleSync(packet *net.LuxPacket) { key, _ := node.router.GetRouteKey(route) if _, ok := sync.Synced[key.Id]; !ok { // not in synced list - sending! - newSyncPacket.Target = key.Id + //newSyncPacket.Target = key.Id + newSyncPacket.Target = route.Target node.router.Send(newSyncPacket) } } @@ -304,6 +305,7 @@ func (node *LuxNode) MulticastSync() error { // are populated neighbors packet := net.LuxPacket{ Type: net.LuxPacketTypeSync, + Target: *node.nodeId, Buffer: proto.NewLuxBuffer(), } sync.Write(&packet.Buffer)