close proxy remote side when done with it
authorJoey Hess <joeyh@joeyh.name>
Fri, 26 Jul 2024 17:57:28 +0000 (13:57 -0400)
committerJoey Hess <joeyh@joeyh.name>
Fri, 26 Jul 2024 17:57:28 +0000 (13:57 -0400)
P2P/Http/State.hs

index ac9898f8c802f25c6f9e62474d60cda3300ba821..19ae0c29b20dda28342db7b8ca184bfd0c6c46c6 100644 (file)
@@ -346,8 +346,6 @@ proxyConnection relv connparams workerpool proxyconn = do
                inAnnexWorker' workerpool $ do
                        proxystate <- liftIO Proxy.mkProxyState
                        concurrencyconfig <- Proxy.noConcurrencyConfig
-                       let protocolversion = min remoteprotocolversion $
-                               connectionProtocolVersion connparams
                        let proxyparams = Proxy.ProxyParams
                                { Proxy.proxyMethods = mkProxyMethods
                                , Proxy.proxyState = proxystate
@@ -357,7 +355,7 @@ proxyConnection relv connparams workerpool proxyconn = do
                                , Proxy.proxySelector = Proxy.singleProxySelector $
                                        proxyConnectionRemoteSide proxyconn
                                , Proxy.proxyConcurrencyConfig = concurrencyconfig
-                               , Proxy.proxyClientProtocolVersion = protocolversion
+                               , Proxy.proxyClientProtocolVersion = connectionProtocolVersion connparams
                                }
                        let proxy mrequestmessage = case mrequestmessage of
                                Just requestmessage -> do
@@ -386,9 +384,11 @@ proxyConnection relv connparams workerpool proxyconn = do
                -- connection
                Left err -> do
                        liftIO $ hPutStrLn stderr ("protoerrhandler: " ++ show err)
+                       Proxy.closeRemoteSide $ proxyConnectionRemoteSide proxyconn
                        return ()
                Right v -> do
                        liftIO $ print "protoerrhandler returned"
+                       Proxy.closeRemoteSide $ proxyConnectionRemoteSide proxyconn
                        cont v
        proxydone = return ()
        requestcomplete () = return ()