From cb1a1fb883527c1c6075c97d7262e41729a9b924 Mon Sep 17 00:00:00 2001 From: joe Date: Tue, 6 Jun 2017 21:05:23 -0400 Subject: WIP: Adapting DHT to Tox network (part 3). --- src/Network/BitTorrent/DHT/Query.hs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/Network/BitTorrent/DHT/Query.hs') diff --git a/src/Network/BitTorrent/DHT/Query.hs b/src/Network/BitTorrent/DHT/Query.hs index a1934014..e1104cb9 100644 --- a/src/Network/BitTorrent/DHT/Query.hs +++ b/src/Network/BitTorrent/DHT/Query.hs @@ -72,7 +72,6 @@ import Data.Either import Data.List as L import Data.Monoid import Data.Text as T -import Data.BEncode (BValue) import qualified Data.Set as Set ;import Data.Set (Set) import Network @@ -85,13 +84,20 @@ import Network.KRPC hiding (Options, def) import Network.KRPC.Message (ReflectedIP(..)) import Network.KRPC.Manager (QueryFailure(..)) import Data.Torrent -import Network.BitTorrent.Address import Network.BitTorrent.DHT.Message import Network.BitTorrent.DHT.Routing as R import Network.BitTorrent.DHT.Session import Control.Concurrent.STM import qualified Network.BitTorrent.DHT.Search as Search +#ifdef VERSION_bencoding +import Network.BitTorrent.Address +import Data.BEncode (BValue) import Network.DHT.Mainline +#else +import Network.BitTorrent.Address hiding (NodeId) +import Data.ByteString (ByteString) +import Data.Tox +#endif {----------------------------------------------------------------------- -- Handlers @@ -99,12 +105,23 @@ import Network.DHT.Mainline nodeHandler :: ( Address ip , KRPC (Query a) (Response b) +#ifdef VERSION_bencoding , Envelope (Query a) (Response b) ~ BValue ) +#else + , Envelope (Query a) (Response b) ~ ByteString ) +#endif => (NodeAddr ip -> a -> DHT ip b) -> NodeHandler ip +#ifdef VERSION_bencoding nodeHandler action = handler mainline $ \ sockAddr qry -> do let remoteId = queringNodeId qry read_only = queryIsReadOnly qry q = queryParams qry +#else +nodeHandler action = handler (error "TODO TOX Messaging") $ \ sockAddr qry -> do + let remoteId = msgClient qry + read_only = False + q = msgPayload qry +#endif case fromSockAddr sockAddr of Nothing -> throwIO BadAddress Just naddr -> do -- cgit v1.2.3