mirror of https://github.com/voidlizard/hbs2
emit PeerExpiredEventKey (PeerExpiredEvent @e p)
This commit is contained in:
parent
8944b5a1c0
commit
563377c855
|
@ -95,6 +95,7 @@ library
|
||||||
, HBS2.Net.Proto.BlockInfo
|
, HBS2.Net.Proto.BlockInfo
|
||||||
, HBS2.Net.Proto.Definition
|
, HBS2.Net.Proto.Definition
|
||||||
, HBS2.Net.Proto.EncryptionHandshake
|
, HBS2.Net.Proto.EncryptionHandshake
|
||||||
|
, HBS2.Net.Proto.Event.PeerExpired
|
||||||
, HBS2.Net.Proto.Peer
|
, HBS2.Net.Proto.Peer
|
||||||
, HBS2.Net.Proto.PeerAnnounce
|
, HBS2.Net.Proto.PeerAnnounce
|
||||||
, HBS2.Net.Proto.PeerExchange
|
, HBS2.Net.Proto.PeerExchange
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
module HBS2.Net.Proto.Event.PeerExpired where
|
||||||
|
|
||||||
|
import HBS2.Clock
|
||||||
|
import HBS2.Events
|
||||||
|
import HBS2.Net.Proto
|
||||||
|
import HBS2.Prelude.Plated
|
||||||
|
|
||||||
|
data PeerExpires = PeerExpires
|
||||||
|
|
||||||
|
data instance EventKey e PeerExpires =
|
||||||
|
PeerExpiredEventKey
|
||||||
|
deriving stock (Typeable, Eq, Generic)
|
||||||
|
|
||||||
|
data instance Event e PeerExpires =
|
||||||
|
PeerExpiredEvent (Peer e)
|
||||||
|
deriving stock (Typeable)
|
||||||
|
|
||||||
|
instance EventType (Event e PeerExpires) where
|
||||||
|
isPersistent = True
|
||||||
|
|
||||||
|
instance Expires (EventKey e PeerExpires) where
|
||||||
|
expiresIn _ = Nothing
|
||||||
|
|
||||||
|
instance Hashable (EventKey e PeerExpires)
|
||||||
|
|
||||||
|
--instance ( Serialise (PubKey 'Sign (Encryption e))
|
||||||
|
-- , Serialise (PubKey 'Encrypt (Encryption e))
|
||||||
|
-- , Serialise (Signature (Encryption e))
|
||||||
|
-- , Serialise PeerNonce
|
||||||
|
-- )
|
||||||
|
|
||||||
|
-- => Serialise PeerExpires
|
||||||
|
|
|
@ -7,6 +7,7 @@ import HBS2.Clock
|
||||||
import HBS2.Events
|
import HBS2.Events
|
||||||
import HBS2.Net.Auth.Credentials
|
import HBS2.Net.Auth.Credentials
|
||||||
import HBS2.Net.PeerLocator
|
import HBS2.Net.PeerLocator
|
||||||
|
import HBS2.Net.Proto.Event.PeerExpired
|
||||||
import HBS2.Net.Proto.Peer
|
import HBS2.Net.Proto.Peer
|
||||||
import HBS2.Net.Proto.PeerExchange
|
import HBS2.Net.Proto.PeerExchange
|
||||||
import HBS2.Net.Proto.Sessions
|
import HBS2.Net.Proto.Sessions
|
||||||
|
@ -221,6 +222,7 @@ peerPingLoop cfg penv = do
|
||||||
delPeers pl [p]
|
delPeers pl [p]
|
||||||
expire (PeerInfoKey p)
|
expire (PeerInfoKey p)
|
||||||
expire (KnownPeerKey p)
|
expire (KnownPeerKey p)
|
||||||
|
emit PeerExpiredEventKey (PeerExpiredEvent @e p)
|
||||||
|
|
||||||
liftIO $ mapM_ link [watch, infoLoop]
|
liftIO $ mapM_ link [watch, infoLoop]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue