summaryrefslogtreecommitdiff
path: root/src/Erebos/Network/Protocol.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-01-28 20:01:31 +0100
committerRoman Smrž <roman.smrz@seznam.cz>2026-01-28 22:39:02 +0100
commit0a78dd7f3e56c4879771a60bb3b43b197ddb444d (patch)
tree54b583569e37ff323d0e6c8b7f9a642d1fa4b395 /src/Erebos/Network/Protocol.hs
parent66bfcd8ad4ef16dcd0e287004dc08f8948589bce (diff)
Check component size when loading ondemand objectHEADmaster
Diffstat (limited to 'src/Erebos/Network/Protocol.hs')
-rw-r--r--src/Erebos/Network/Protocol.hs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Erebos/Network/Protocol.hs b/src/Erebos/Network/Protocol.hs
index 463bf40..34f1163 100644
--- a/src/Erebos/Network/Protocol.hs
+++ b/src/Erebos/Network/Protocol.hs
@@ -7,6 +7,7 @@ module Erebos.Network.Protocol (
SecurityRequirement(..),
WaitingRef(..),
+ DataRequestResult(..),
WaitingRefCallback,
wrDigest,
@@ -464,10 +465,16 @@ writeByteStringToStream stream = go 0
data WaitingRef = WaitingRef
{ wrefStorage :: Storage
, wrefPartial :: PartialRef
- , wrefAction :: Ref -> WaitingRefCallback
- , wrefStatus :: TVar (Either [RefDigest] Ref)
+ , wrefBound :: Word64
+ , wrefAction :: DataRequestResult -> WaitingRefCallback
+ , wrefStatus :: TVar (Either [ RefDigest ] DataRequestResult)
}
+data DataRequestResult
+ = DataRequestFulfilled Ref
+ | DataRequestRejected
+ | DataRequestBrokenBound
+
type WaitingRefCallback = ExceptT ErebosError IO ()
wrDigest :: WaitingRef -> RefDigest