summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Erebos/Discovery.hs12
-rw-r--r--src/Erebos/Network.hs2
2 files changed, 7 insertions, 7 deletions
diff --git a/src/Erebos/Discovery.hs b/src/Erebos/Discovery.hs
index da55dc3..c287448 100644
--- a/src/Erebos/Discovery.hs
+++ b/src/Erebos/Discovery.hs
@@ -822,16 +822,16 @@ discoverySearch server dgst = do
Just (UnhandledService svc) | svc == serviceID (Proxy @DiscoveryService) -> return ()
_ -> throwError e) $ do
peers <- liftIO $ getCurrentPeerList server
- match <- forM peers $ \peer -> do
+ peersFull <- fmap catMaybes $ forM peers $ \peer -> do
getPeerIdentity peer >>= \case
- PeerIdentityFull pid -> do
- return $ dgst `elem` identityDigests pid
- _ -> return False
- when (not $ or match) $ do
+ PeerIdentityFull pid -> return $ Just ( peer, pid )
+ _ -> return Nothing
+ let match = any ((dgst `elem`) . identityDigests . snd) peersFull
+ when (not match) $ do
_ <- modifyServiceGlobalState server (Proxy @DiscoveryService) $ \s ->
( s { dgsSearchingFor = S.insert dgst $ dgsSearchingFor s }, () )
now <- liftIO $ getTime Monotonic
- forM_ peers $ \peer -> do
+ forM_ peersFull $ \( peer, _ ) -> do
runPeerService peer $ do
weAskedFor <- dpsWeAskedFor <$> svcGet
when (not $ M.member dgst weAskedFor) $ do
diff --git a/src/Erebos/Network.hs b/src/Erebos/Network.hs
index 225ba4a..3cb961d 100644
--- a/src/Erebos/Network.hs
+++ b/src/Erebos/Network.hs
@@ -1116,7 +1116,7 @@ runPeerServiceOn mbservice newStreams paddr peer handler = liftIO $ do
putTMVar (serverServiceStates server) $ M.insert svc (SomeServiceGlobalState proxy gs') global
return h'
_ -> do
- atomically $ logd $ "can't run service handler on peer with incomplete identity " ++ show paddr
+ atomically $ logd $ "can't run service " <> show (toUUID svc) <> " handler on peer with incomplete identity " ++ show paddr
_ -> atomically $ do
logd $ "unhandled service '" ++ show (toUUID svc) ++ "'"