]> dgit.raspbian.org Git - git-annex.git/commitdiff
simplify
authorJoey Hess <joeyh@joeyh.name>
Thu, 11 Jul 2024 15:50:44 +0000 (11:50 -0400)
committerJoey Hess <joeyh@joeyh.name>
Thu, 11 Jul 2024 15:50:44 +0000 (11:50 -0400)
P2P/Http.hs
doc/todo/git-annex_proxies.mdwn

index 2a9e0ecb5e65cbe70d27eae80d8a9447431c4911..02a5600a8e70b8c3b7ab7fcf9477e68ee9b173f0 100644 (file)
@@ -264,8 +264,8 @@ clientGet
        -> Maybe Offset
        -> Maybe Auth
        -> IO ()
-clientGet clientenv ver k su cu bypass af o auth =
-       withClientM (clientGet' su ver k cu bypass af o auth) clientenv $ \case
+clientGet clientenv (ProtocolVersion ver) k su cu bypass af o auth =
+       withClientM (cli k cu bypass af o auth) clientenv $ \case
                Left err -> throwM err
                Right respheaders -> do
                        let dl = case lookupResponseHeader @DataLengthHeader' respheaders of
@@ -275,6 +275,15 @@ clientGet clientenv ver k su cu bypass af o auth =
                        b <- S.unSourceT (getResponse respheaders) gatherByteString
                        liftIO $ print "got it all, writing to file 'got'"
                        L.writeFile "got" b
+  where
+       cli =case ver of
+               3 -> v3 su V3
+               2 -> v2 su V2
+               1 -> v1 su V1
+               0 -> v0 su V0
+               _ -> error "unsupported protocol version"
+       
+       v3 :<|> v2 :<|> v1 :<|> v0 :<|> _ = client p2pHttpAPI
 
 gatherByteString :: S.StepT IO B.ByteString -> IO L.ByteString
 gatherByteString = unsafeInterleaveIO . go
@@ -285,25 +294,6 @@ gatherByteString = unsafeInterleaveIO . go
        go (S.Effect ms) = ms >>= go
        go (S.Yield v s) = LI.Chunk v <$> unsafeInterleaveIO (go s)
 
-clientGet'
-       :: B64UUID ServerSide
-       -> ProtocolVersion
-       -> B64Key
-       -> B64UUID ClientSide
-       -> [B64UUID Bypass]
-       -> Maybe B64FilePath
-       -> Maybe Offset
-       -> Maybe Auth
-       -> ClientM (Headers '[DataLengthHeader] (S.SourceT IO B.ByteString))
-clientGet' su (ProtocolVersion ver) = case ver of
-       3 -> v3 su V3
-       2 -> v2 su V2
-       1 -> v1 su V1
-       0 -> v0 su V0
-       _ -> error "unsupported protocol version"
-  where
-       v3 :<|> v2 :<|> v1 :<|> v0 :<|> _ = client p2pHttpAPI
-
 type CheckPresentAPI
        = KeyParam
        :> CU Required
index 047759c2e845fd4b9af0fcc08d7e3615601a39e9..3ee8d45e0688ce2b417e053a6f94945c1048813e 100644 (file)
@@ -28,8 +28,7 @@ Planned schedule of work:
 
 ## work notes
 
-* http server and client are working, remaining 
-  server API endpoints need wiring up and testing. 
+* Implement: servePut, servePutOffset, serveLockContent
 
 * I have a file `servant.hs` in the httpproto branch that works through some
   of the bytestring streaming issues.
@@ -55,6 +54,8 @@ Planned schedule of work:
 * finalized HTTP P2P protocol draft 1,
   [[design/p2p_protocol_over_http/draft1]]
 
+* implemented server and client for HTTP P2P protocol
+
 ## items deferred until later for [[design/passthrough_proxy]]
 
 * Check annex.diskreserve when proxying for special remotes