summaryrefslogtreecommitdiff
path: root/main/Main.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-05-29 22:30:40 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-05-31 17:09:53 +0200
commit847b60ae7eb2d98576ed7e8775a690041fed8081 (patch)
treec81f208c53e0151d8be2869f32629cf36f09e6e3 /main/Main.hs
parentd9800045d572358526bf18688f06a4cfa4f99772 (diff)
Use weak refs in discovery service
Diffstat (limited to 'main/Main.hs')
-rw-r--r--main/Main.hs9
1 files changed, 4 insertions, 5 deletions
diff --git a/main/Main.hs b/main/Main.hs
index a0c28f7..e9c0ae4 100644
--- a/main/Main.hs
+++ b/main/Main.hs
@@ -924,13 +924,12 @@ cmdDiscoveryInit = void $ do
cmdDiscovery :: Command
cmdDiscovery = void $ do
Just peer <- gets csIcePeer
- st <- getStorage
sref <- asks ciLine
eprint <- asks ciPrint
- liftIO $ readRef st (BC.pack sref) >>= \case
- Nothing -> error "ref does not exist"
- Just ref -> do
- res <- runExceptT $ sendToPeer peer $ DiscoverySearch ref
+ case readRefDigest (BC.pack sref) of
+ Nothing -> throwOtherError "failed to parse ref"
+ Just dgst -> liftIO $ do
+ res <- runExceptT $ sendToPeer peer $ DiscoverySearch $ Right dgst
case res of
Right _ -> return ()
Left err -> eprint err