summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Crayne <jim.crayne@gmail.com>2020-01-24 09:26:37 +0000
committerJames Crayne <jim.crayne@gmail.com>2020-01-24 09:37:00 +0000
commit8db413d9a903f6f603b078f86f80a38306b9034d (patch)
tree6386e5be13ab86a09960f2cecca9b23b3e6f3c50
parent770649a15332df52e98c8d99582e5d67d8d84787 (diff)
resolvePeer,reverseAddress for sum of Managers
-rw-r--r--server/src/Connection.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/server/src/Connection.hs b/server/src/Connection.hs
index ea86f4bb..140212f1 100644
--- a/server/src/Connection.hs
+++ b/server/src/Connection.hs
@@ -7,6 +7,7 @@ import Control.Arrow
7import Control.Concurrent.STM 7import Control.Concurrent.STM
8import Data.Bits 8import Data.Bits
9import Data.Word 9import Data.Word
10import Data.List
10import qualified Data.Map as Map 11import qualified Data.Map as Map
11 ;import Data.Map (Map) 12 ;import Data.Map (Map)
12import Network.Socket (SockAddr(..)) 13import Network.Socket (SockAddr(..))
@@ -132,4 +133,11 @@ addManagers mgrA mgrB = Manager
132 <|> Right <$> stringToKey mgrB str 133 <|> Right <$> stringToKey mgrB str
133 , showProgress = either (showProgress mgrA) (showProgress mgrB) 134 , showProgress = either (showProgress mgrA) (showProgress mgrB)
134 , showKey = either (showKey mgrA) (showKey mgrB) 135 , showKey = either (showKey mgrA) (showKey mgrB)
136 , resolvePeer = \case
137 Left k -> resolvePeer mgrA k
138 Right k -> resolvePeer mgrB k
139 , reverseAddress = \peerAddress -> do { xs <- map Left <$> reverseAddress mgrA peerAddress
140 ; ys <- map Right <$> reverseAddress mgrB peerAddress
141 ; return (concat . transpose $ [xs,ys])
142 }
135 } 143 }