diff options
author | Joe Crayne <joe@jerkface.net> | 2019-12-14 16:11:03 -0500 |
---|---|---|
committer | Joe Crayne <joe@jerkface.net> | 2020-01-01 23:26:49 -0500 |
commit | d5efdc327bbb69a905043df45415817e318e38ee (patch) | |
tree | 7be975048f3e40c27811bdb39ba92d871a42588c /dht/src/Network/Tox/Onion/Routes.hs | |
parent | 8c04d9cca70241bebe4b94b779fe7bbfe6140f51 (diff) |
Multi Transports: TCP for DHT/Cookies/Handshakes.
Diffstat (limited to 'dht/src/Network/Tox/Onion/Routes.hs')
-rw-r--r-- | dht/src/Network/Tox/Onion/Routes.hs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/dht/src/Network/Tox/Onion/Routes.hs b/dht/src/Network/Tox/Onion/Routes.hs index d61c721e..baca693b 100644 --- a/dht/src/Network/Tox/Onion/Routes.hs +++ b/dht/src/Network/Tox/Onion/Routes.hs | |||
@@ -84,7 +84,7 @@ data OnionRouter = OnionRouter | |||
84 | , tcpKademliaClient :: TCP.TCPClient String Nonce8 | 84 | , tcpKademliaClient :: TCP.TCPClient String Nonce8 |
85 | -- | This thread maintains the TCP relay table. | 85 | -- | This thread maintains the TCP relay table. |
86 | , tcpKademliaThread :: ThreadId | 86 | , tcpKademliaThread :: ThreadId |
87 | , tcpProberState :: TCPCache (SessionProtocol TCP.RelayPacket TCP.RelayPacket) | 87 | , tcpProberState :: TCP.RelayCache |
88 | , tcpProber :: TCP.TCPProber | 88 | , tcpProber :: TCP.TCPProber |
89 | , tcpProberThread :: ThreadId | 89 | , tcpProberThread :: ThreadId |
90 | -- | Kademlia table of TCP relays. | 90 | -- | Kademlia table of TCP relays. |
@@ -158,6 +158,7 @@ newOnionRouter :: TransportCrypto | |||
158 | -> (String -> IO ()) | 158 | -> (String -> IO ()) |
159 | -> Bool -- is tcp enabled? | 159 | -> Bool -- is tcp enabled? |
160 | -> IO ( OnionRouter | 160 | -> IO ( OnionRouter |
161 | , Transport String TCP.ViaRelay B.ByteString | ||
161 | , TVar ( ChaChaDRG | 162 | , TVar ( ChaChaDRG |
162 | , Word64Map (Either (Maybe (Bool,TCP.RelayPacket) -> IO ()) | 163 | , Word64Map (Either (Maybe (Bool,TCP.RelayPacket) -> IO ()) |
163 | (Maybe (OnionMessage Identity) -> IO ())))) | 164 | (Maybe (OnionMessage Identity) -> IO ())))) |
@@ -168,7 +169,7 @@ newOnionRouter crypto perror tcp_enabled = do | |||
168 | pq <- newTVar W64.empty | 169 | pq <- newTVar W64.empty |
169 | rm <- newArray (0,11) Nothing | 170 | rm <- newArray (0,11) Nothing |
170 | return (rlog,pq,rm) | 171 | return (rlog,pq,rm) |
171 | ((tbl,(tcptbl,tcpcons)),tcp) <- do | 172 | ((tbl,(tcptbl,tcpcons,relaynet)),tcp) <- do |
172 | (tcptbl, client) <- TCP.newClient crypto Left $ \case | 173 | (tcptbl, client) <- TCP.newClient crypto Left $ \case |
173 | Left v -> void . v . Just . (,) False | 174 | Left v -> void . v . Just . (,) False |
174 | Right v -> \case | 175 | Right v -> \case |
@@ -268,7 +269,7 @@ newOnionRouter crypto perror tcp_enabled = do | |||
268 | $ clientNet c } | 269 | $ clientNet c } |
269 | } | 270 | } |
270 | } | 271 | } |
271 | return (or,tcptbl) | 272 | return (or,relaynet,tcptbl) |
272 | 273 | ||
273 | updateTCP :: OnionRouter -> TCP.NodeInfo -> p -> IO () | 274 | updateTCP :: OnionRouter -> TCP.NodeInfo -> p -> IO () |
274 | updateTCP or addr x = do | 275 | updateTCP or addr x = do |