From e3ec604c8b918eee0c88866679ed0444a36a2803 Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Sat, 25 Jan 2020 03:32:00 -0500 Subject: Show address utilities: showViaRelay and summarizeNodeInfo. --- dht/src/Data/Tox/DHT/Multi.hs | 6 +++++- dht/src/Network/Tox/TCP.hs | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dht/src/Data/Tox/DHT/Multi.hs b/dht/src/Data/Tox/DHT/Multi.hs index 4067ab46..378a46bc 100644 --- a/dht/src/Data/Tox/DHT/Multi.hs +++ b/dht/src/Data/Tox/DHT/Multi.hs @@ -14,7 +14,7 @@ import qualified Network.Tox.TCP.NodeId as TCP import Data.Tox.Onion (OnionDestination,RouteId) import Data.Tox.Relay hiding (NodeInfo) import Network.Address as SockAddr (canonize) -import Network.Tox.TCP as TCP (ViaRelay(..), tcpConnectionRequest_) +import Network.Tox.TCP as TCP (ViaRelay(..), tcpConnectionRequest_, showViaRelay) import Network.QueryResponse as QR (Tagged(..), Client) import Data.Dependent.Sum @@ -128,6 +128,10 @@ nodeId :: DSum T Identity -> NodeId nodeId (UDP :=> Identity ni ) = UDP.nodeId ni nodeId (TCP :=> Identity (ViaRelay _ nid _)) = nid +summarizeNodeInfo :: NodeInfo -> String +summarizeNodeInfo (UDP :=> Identity ni ) = show ni +summarizeNodeInfo (TCP :=> Identity viarelay) = showViaRelay viarelay + relayNodeId :: TCP.ViaRelay -> UDP.NodeId relayNodeId (ViaRelay _ nid _) = nid diff --git a/dht/src/Network/Tox/TCP.hs b/dht/src/Network/Tox/TCP.hs index a89dbced..1da302b6 100644 --- a/dht/src/Network/Tox/TCP.hs +++ b/dht/src/Network/Tox/TCP.hs @@ -423,6 +423,11 @@ newClient crypto store load lookupSender getRoute = do data ViaRelay = ViaRelay (Maybe ConId) UDP.NodeId NodeInfo deriving (Eq,Ord,Show) +showViaRelay :: ViaRelay -> String +showViaRelay (ViaRelay mcon nid tcp) = + "TCP:" ++ maybe "(oob)" (\(ConId con) -> "(" ++ show con ++ ")") mcon + ++ show nid ++ "@@" ++ show (nodeAddr tcp) + partitionRelay :: TransportA err NodeInfo (SessionData,RelayPacket) (Bool,RelayPacket) -> IO ( Transport err ViaRelay ByteString , TransportA err NodeInfo (SessionData,RelayPacket) (Bool,RelayPacket)) -- cgit v1.2.3