diff options
Diffstat (limited to 'src/Erebos/Network.hs')
-rw-r--r-- | src/Erebos/Network.hs | 6 |
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 |