From 044672da343dd3139be0c8f95f1fbd45b7546d9c Mon Sep 17 00:00:00 2001 From: Sam T Date: Sun, 30 Jun 2013 23:05:29 +0400 Subject: ~ Fix binary instance. --- src/Network/BitTorrent/Exchange.hs | 13 ++++++++----- src/Network/BitTorrent/Exchange/Protocol.hs | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/Network/BitTorrent/Exchange.hs b/src/Network/BitTorrent/Exchange.hs index 9f119d13..b0a94853 100644 --- a/src/Network/BitTorrent/Exchange.hs +++ b/src/Network/BitTorrent/Exchange.hs @@ -79,7 +79,8 @@ import Control.Monad.Trans.Resource import Data.IORef import Data.Conduit as C -import Data.Conduit.Cereal +import Data.Conduit.Cereal as S +import Data.Conduit.Serialization.Binary as B import Data.Conduit.Network import Data.Serialize as S import Text.PrettyPrint as PP hiding (($$)) @@ -103,10 +104,12 @@ type PeerWire = ConduitM Message Message IO runPeerWire :: Socket -> PeerWire () -> IO () runPeerWire sock p2p = - sourceSocket sock $= - conduitGet S.get $= - p2p $= - conduitPut S.put $$ + sourceSocket sock $= + S.conduitGet S.get $= +-- B.conduitDecode $= + p2p $= + S.conduitPut S.put $$ +-- B.conduitEncode $$ sinkSocket sock awaitMessage :: P2P Message diff --git a/src/Network/BitTorrent/Exchange/Protocol.hs b/src/Network/BitTorrent/Exchange/Protocol.hs index 83774f06..a285f8d2 100644 --- a/src/Network/BitTorrent/Exchange/Protocol.hs +++ b/src/Network/BitTorrent/Exchange/Protocol.hs @@ -435,7 +435,7 @@ instance Serialize Message where instance Binary Message where get = do - len <- undefined --getInt + len <- getIntB -- _ <- lookAhead $ ensure len if len == 0 then return KeepAlive else do @@ -463,7 +463,7 @@ instance Binary Message where where getBlock :: Int -> B.Get Block - getBlock len = Block <$> getIntB <*> getIntB <*> B.getBytes len + getBlock len = Block <$> getIntB <*> getIntB <*> B.getByteString len {-# INLINE getBlock #-} put KeepAlive = putIntB 0 -- cgit v1.2.3