From d8160f03094e6d18509956efe9bb6aeda31d79c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Mon, 28 Jul 2025 19:16:18 +0200 Subject: Return peer address in IO monad Changelog: API: Replaced `Network.peerAddress` with `getPeerAddress` and added `getPeerAddresses` --- src/Erebos/Network.hs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/Erebos/Network.hs') diff --git a/src/Erebos/Network.hs b/src/Erebos/Network.hs index 76ecd82..63ce7b8 100644 --- a/src/Erebos/Network.hs +++ b/src/Erebos/Network.hs @@ -8,7 +8,7 @@ module Erebos.Network ( ServerOptions(..), serverIdentity, defaultServerOptions, Peer, peerServer, peerStorage, - PeerAddress(..), peerAddress, + PeerAddress(..), getPeerAddress, getPeerAddresses, PeerIdentity(..), peerIdentity, WaitingRef, wrDigest, Service(..), @@ -139,6 +139,14 @@ data Peer = Peer , peerWaitingRefs :: TMVar [WaitingRef] } +-- | Get current main address of the peer (used to send new packets). +getPeerAddress :: MonadIO m => Peer -> m PeerAddress +getPeerAddress = liftIO . return . peerAddress + +-- | Get all known addresses of given peer. +getPeerAddresses :: MonadIO m => Peer -> m [ PeerAddress ] +getPeerAddresses = fmap (: []) . getPeerAddress + peerServer :: Peer -> Server peerServer = peerServer_ -- cgit v1.2.3