mirror of https://github.com/voidlizard/hbs2
quickfix
This commit is contained in:
parent
f0d8d6d4d2
commit
3f47cd102c
|
@ -5,14 +5,18 @@ import HBS2.Events
|
|||
import HBS2.Hash
|
||||
import HBS2.Clock
|
||||
import HBS2.Net.Proto
|
||||
import HBS2.Net.Proto.Peer
|
||||
import HBS2.Prelude.Plated
|
||||
import HBS2.Storage
|
||||
import HBS2.Actors.Peer
|
||||
import HBS2.Net.Proto.Sessions
|
||||
|
||||
import Data.Functor
|
||||
import Data.Word
|
||||
import Prettyprinter
|
||||
import Data.ByteString.Lazy (ByteString)
|
||||
import Data.Foldable
|
||||
import Data.Foldable hiding (find)
|
||||
import Data.Maybe
|
||||
|
||||
import System.Random.Shuffle
|
||||
|
||||
|
@ -82,13 +86,19 @@ blockChunksProto :: forall e m . ( MonadIO m
|
|||
, Response e (BlockChunks e) m
|
||||
, HasDeferred e (BlockChunks e) m
|
||||
, HasOwnPeer e m
|
||||
, Sessions e (KnownPeer e) m
|
||||
, Pretty (Peer e)
|
||||
)
|
||||
=> BlockChunksI e m
|
||||
-> BlockChunks e
|
||||
-> m ()
|
||||
|
||||
blockChunksProto adapter (BlockChunks c p) =
|
||||
blockChunksProto adapter (BlockChunks c p) = do
|
||||
|
||||
peer <- thatPeer (Proxy @(BlockChunks e))
|
||||
auth <- find (KnownPeerKey peer) id <&> isJust
|
||||
when auth do
|
||||
|
||||
case p of
|
||||
|
||||
BlockGetChunks h size n1 num -> do
|
||||
|
|
|
@ -2,10 +2,13 @@ module HBS2.Net.Proto.BlockInfo where
|
|||
|
||||
import HBS2.Prelude.Plated
|
||||
import HBS2.Net.Proto
|
||||
import HBS2.Net.Proto.Peer
|
||||
import HBS2.Net.Proto.Sessions
|
||||
import HBS2.Events
|
||||
import HBS2.Hash
|
||||
|
||||
import Data.Functor
|
||||
import Data.Maybe
|
||||
|
||||
data BlockInfo e = GetBlockSize (Hash HbSync)
|
||||
| NoBlock (Hash HbSync)
|
||||
|
@ -21,6 +24,7 @@ blockSizeProto :: forall e m . ( MonadIO m
|
|||
, Response e (BlockInfo e) m
|
||||
, HasDeferred e (BlockInfo e) m
|
||||
, EventEmitter e (BlockInfo e) m
|
||||
, Sessions e (KnownPeer e) m
|
||||
)
|
||||
=> GetBlockSize HbSync m
|
||||
-> HasBlockEvent HbSync e m
|
||||
|
@ -31,6 +35,9 @@ blockSizeProto getBlockSize evHasBlock =
|
|||
\case
|
||||
GetBlockSize h -> do
|
||||
-- liftIO $ print "GetBlockSize"
|
||||
p <- thatPeer (Proxy @(BlockInfo e))
|
||||
auth <- find (KnownPeerKey p) id <&> isJust
|
||||
when auth do
|
||||
deferred (Proxy @(BlockInfo e))$ do
|
||||
getBlockSize h >>= \case
|
||||
Just size -> response (BlockSize @e h size)
|
||||
|
|
Loading…
Reference in New Issue