diff options
author | James Crayne <jim.crayne@gmail.com> | 2020-01-24 09:26:37 +0000 |
---|---|---|
committer | James Crayne <jim.crayne@gmail.com> | 2020-01-24 09:37:00 +0000 |
commit | 8db413d9a903f6f603b078f86f80a38306b9034d (patch) | |
tree | 6386e5be13ab86a09960f2cecca9b23b3e6f3c50 | |
parent | 770649a15332df52e98c8d99582e5d67d8d84787 (diff) |
resolvePeer,reverseAddress for sum of Managers
-rw-r--r-- | server/src/Connection.hs | 8 |
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 | |||
7 | import Control.Concurrent.STM | 7 | import Control.Concurrent.STM |
8 | import Data.Bits | 8 | import Data.Bits |
9 | import Data.Word | 9 | import Data.Word |
10 | import Data.List | ||
10 | import qualified Data.Map as Map | 11 | import qualified Data.Map as Map |
11 | ;import Data.Map (Map) | 12 | ;import Data.Map (Map) |
12 | import Network.Socket (SockAddr(..)) | 13 | import 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 | } |