From 1204457a2adc32bf28fd00925cea5658466b20a2 Mon Sep 17 00:00:00 2001 From: Trolli Schmittlauch Date: Wed, 10 Jun 2020 16:53:17 +0200 Subject: [PATCH] make sure that predecessors are smaller and successors are larger than node ID --- src/Hash2Pub/FediChordTypes.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Hash2Pub/FediChordTypes.hs b/src/Hash2Pub/FediChordTypes.hs index 410cbe9..a599739 100644 --- a/src/Hash2Pub/FediChordTypes.hs +++ b/src/Hash2Pub/FediChordTypes.hs @@ -218,11 +218,11 @@ instance Typeable a => Show (TQueue a) where -- | convenience function that updates the successors of a 'LocalNodeState' setSuccessors :: [RemoteNodeState] -> LocalNodeState -> LocalNodeState -setSuccessors succ' ns = ns {successors = take (kNeighbours ns) . nub . sortBy (localCompare `on` getNid) $ succ'} +setSuccessors succ' ns = ns {successors = take (kNeighbours ns) . nub . sortBy (localCompare `on` getNid) . filter ((== LT) . (localCompare `on` getNid) (toRemoteNodeState ns)) $ succ'} -- | convenience function that updates the predecessors of a 'LocalNodeState' setPredecessors :: [RemoteNodeState] -> LocalNodeState -> LocalNodeState -setPredecessors pred' ns = ns {predecessors = take (kNeighbours ns) . nub . sortBy (flip (localCompare `on` getNid)) $ pred'} +setPredecessors pred' ns = ns {predecessors = take (kNeighbours ns) . nub . sortBy (flip localCompare `on` getNid) . filter ((== GT) . (localCompare `on` getNid) (toRemoteNodeState ns)) $ pred'} type NodeCache = Map.Map NodeID CacheEntry