summaryrefslogtreecommitdiff
path: root/src/Erebos/Discovery.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Erebos/Discovery.hs')
-rw-r--r--src/Erebos/Discovery.hs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Erebos/Discovery.hs b/src/Erebos/Discovery.hs
index 16b67e6..7487d7d 100644
--- a/src/Erebos/Discovery.hs
+++ b/src/Erebos/Discovery.hs
@@ -553,6 +553,19 @@ instance Service DiscoveryService where
forM_ searchingFor $ \dgst -> do
sendToPeer peer $ DiscoverySearch (Right dgst)
+ serviceUpdatedPeer = do
+ pid <- asks svcPeerIdentity
+ peer <- asks svcPeer
+ isPeerDropped peer >>= \case
+ True -> do
+ peers <- dgsPeers <$> svcGetGlobal
+ let peers' = M.filter ((Just peer /=) . dpPeer) peers
+ svcModifyGlobal $ \s -> s { dgsPeers = peers' }
+ debugLog $ "dropped peer " <> show [ refDigest $ storedRef $ idData pid, refDigest $ storedRef $ idExtData pid ] <>
+ ", map size " <> show (M.size peers) <> " -> " <> show (M.size peers')
+ False -> do
+ debugLog $ "updated peer " <> show [ refDigest $ storedRef $ idData pid, refDigest $ storedRef $ idExtData pid ]
+
#ifdef ENABLE_ICE_SUPPORT
serviceStopServer _ _ _ pstates = do
forM_ pstates $ \( _, DiscoveryPeerState {..} ) -> do