diff options
author | 2018-02-07 16:14:07 -0400 | |
---|---|---|
committer | 2018-02-07 16:14:07 -0400 | |
commit | d4e88a867e9e18acd31f297c2c1295cbd6dd7155 (patch) | |
tree | e17d504e5135b86b725242a900ac52bec80b0ff0 /Remote/External.hs | |
parent | 7ea3489ceb7dd201dc6dd01907f8c546f1bacbc1 (diff) | |
parent | 404646a2c7997bcaf76f6b881556c55f13ed58d1 (diff) |
Merge branch 'EXTENSIONS'
Diffstat (limited to 'Remote/External.hs')
-rw-r--r-- | Remote/External.hs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Remote/External.hs b/Remote/External.hs index 5a1e7f210..bff74c3b1 100644 --- a/Remote/External.hs +++ b/Remote/External.hs @@ -505,7 +505,8 @@ withExternalState external = bracket alloc dealloc dealloc st = liftIO $ atomically $ modifyTVar' v (st:) -{- Starts an external remote process running, and checks VERSION. -} +{- Starts an external remote process running, and checks VERSION and + - exchanges EXTENSIONS. -} startExternal :: External -> Annex ExternalState startExternal external = do errrelayer <- mkStderrRelayer @@ -514,6 +515,18 @@ startExternal external = do (const Nothing) (checkVersion st external) (const Nothing) + sendMessage st external (EXTENSIONS supportedExtensionList) + -- It responds with a EXTENSIONS_RESPONSE; that extensions list + -- is reserved for future expansion. UNSUPPORTED_REQUEST is also + -- accepted. + receiveMessage st external + (\resp -> case resp of + EXTENSIONS_RESPONSE _ -> Just (return ()) + UNSUPPORTED_REQUEST -> Just (return ()) + _ -> Nothing + ) + (const Nothing) + (const Nothing) return st where start errrelayer g = liftIO $ do |