summaryrefslogtreecommitdiff
path: root/src/Erebos/Network.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-02-18 19:28:39 +0100
committerRoman Smrž <roman.smrz@seznam.cz>2026-02-18 22:05:52 +0100
commit13753a46772cc7fe7579bdc669ffccc7a6c3bf00 (patch)
treeb78ba3f16a0788a9ce9df077e5cce671e87d35ab /src/Erebos/Network.hs
parent14388f08afeb984d0e0376fe8eddcfebb363c86d (diff)
Notify listeners when peer is automatically dropped
Diffstat (limited to 'src/Erebos/Network.hs')
-rw-r--r--src/Erebos/Network.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Erebos/Network.hs b/src/Erebos/Network.hs
index e9f85e4..e7b08a0 100644
--- a/src/Erebos/Network.hs
+++ b/src/Erebos/Network.hs
@@ -403,9 +403,7 @@ startServer serverOptions serverOrigHead logd' serverServices = do
case paddr of
DatagramAddress _ -> return ()
CustomPeerAddress caddr -> connectionToAddressClosed caddr
-
dropPeer peer
- atomically $ writeTChan serverChanPeer peer
peerLoop
ReceivedAnnounce addr _ -> do
@@ -902,8 +900,10 @@ dropPeerInner :: Peer -> Map PeerAddress Peer -> IO (Map PeerAddress Peer)
dropPeerInner peer pvalue = do
atomically $ do
readTVar (peerState peer) >>= \case
- PeerConnected conn -> connClose conn
- _ -> return()
+ PeerConnected conn -> do
+ connClose conn
+ writeTChan (serverChanPeer $ peerServer peer) peer
+ _ -> return ()
writeTVar (peerState peer) PeerDropped
return $ M.delete (peerAddress peer) pvalue