implement generic get server
This commit is contained in:
parent
a7383b5c59
commit
80d2ffc79a
1 changed files with 15 additions and 4 deletions
19
P2P/Http.hs
19
P2P/Http.hs
|
@ -121,14 +121,25 @@ serveP2pHttp st
|
|||
|
||||
type GetGenericAPI
|
||||
= CaptureKey
|
||||
:> StreamGet NoFraming OctetStream (SourceIO B.ByteString)
|
||||
:> IsSecure
|
||||
:> AuthHeader
|
||||
:> StreamGet NoFraming OctetStream
|
||||
(Headers '[DataLengthHeader] (SourceIO B.ByteString))
|
||||
|
||||
serveGetGeneric
|
||||
:: P2PHttpServerState
|
||||
-> B64UUID ServerSide
|
||||
-> B64Key
|
||||
-> Handler (S.SourceT IO B.ByteString)
|
||||
serveGetGeneric st su k = undefined -- serveGet st V0 k
|
||||
-> IsSecure
|
||||
-> Maybe Auth
|
||||
-> Handler (Headers '[DataLengthHeader] (S.SourceT IO B.ByteString))
|
||||
serveGetGeneric st su@(B64UUID u) k =
|
||||
-- Use V0 because it does not alter the returned data to indicate
|
||||
-- InValid content.
|
||||
serveGet st su V0 k cu [] Nothing Nothing
|
||||
where
|
||||
-- Reuse server UUID as client UUID.
|
||||
cu = B64UUID u :: B64UUID ClientSide
|
||||
|
||||
type GetAPI
|
||||
= CaptureKey
|
||||
|
@ -220,7 +231,7 @@ serveGet st su apiver (B64Key k) cu bypass baf startat sec auth = do
|
|||
liftIO $ void $ tryNonAsync $ atomically $ takeTMVar finalv
|
||||
-- Make sure the annexworker is not left blocked on endv
|
||||
-- if the client disconnected early.
|
||||
liftIO $ atomically $ tryPutTMVar endv ()
|
||||
void $ liftIO $ atomically $ tryPutTMVar endv ()
|
||||
void $ void $ tryNonAsync $ wait annexworker
|
||||
void $ tryNonAsync $ releaseP2PConnection conn
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue