summaryrefslogtreecommitdiff
path: root/src/Erebos/Network.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Erebos/Network.hs')
-rw-r--r--src/Erebos/Network.hs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Erebos/Network.hs b/src/Erebos/Network.hs
index 92f62ff..c2a714e 100644
--- a/src/Erebos/Network.hs
+++ b/src/Erebos/Network.hs
@@ -180,6 +180,8 @@ instance Eq Peer where
class (Eq addr, Ord addr, Show addr, Typeable addr) => PeerAddressType addr where
sendBytesToAddress :: addr -> ByteString -> IO ()
connectionToAddressClosed :: addr -> IO ()
+ isReliableTransport :: proxy addr -> Bool
+ isReliableTransport _ = False
data PeerAddress
= forall addr. PeerAddressType addr => CustomPeerAddress addr
@@ -208,6 +210,11 @@ instance Ord PeerAddress where
compare (DatagramAddress addr) (DatagramAddress addr') = compare addr addr'
+instance ProtocolAddressType PeerAddress where
+ addrIsReliableTransport = \case
+ CustomPeerAddress (_ :: a) -> isReliableTransport (Proxy @a)
+ DatagramAddress _ -> False
+
data PeerIdentity
= PeerIdentityUnknown (TVar [ UnifiedIdentity -> ExceptT ErebosError IO () ])