summaryrefslogtreecommitdiff
path: root/src/Erebos/Network.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-07-16 21:46:56 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-07-16 21:46:56 +0200
commitf87fdcc65008fb40e8f0f37f33f6bbae1afa162a (patch)
tree64251d37407cc4beaed177b9faa5ac6d1b9c212a /src/Erebos/Network.hs
parenta03a457538dd990db34c71facd92ea3173ff6025 (diff)
Close streams used for tunnel on connection dropHEADmaster
Diffstat (limited to 'src/Erebos/Network.hs')
-rw-r--r--src/Erebos/Network.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/Erebos/Network.hs b/src/Erebos/Network.hs
index a90f5d8..6126e60 100644
--- a/src/Erebos/Network.hs
+++ b/src/Erebos/Network.hs
@@ -163,6 +163,8 @@ instance Eq Peer where
class (Eq addr, Ord addr, Show addr, Typeable addr) => PeerAddressType addr where
sendBytesToAddress :: addr -> ByteString -> IO ()
+ connectionToAddressClosed :: addr -> IO ()
+ connectionToAddressClosed _ = return ()
data PeerAddress
= forall addr. PeerAddressType addr => CustomPeerAddress addr
@@ -384,6 +386,10 @@ startServer serverOptions serverOrigHead logd' serverServices = do
handlePacket identity secure peer chanSvc svcs header prefs
peerLoop
Nothing -> do
+ case paddr of
+ DatagramAddress _ -> return ()
+ CustomPeerAddress caddr -> connectionToAddressClosed caddr
+
dropPeer peer
atomically $ writeTChan serverChanPeer peer
peerLoop