handleGET remoteside message = getresponse (runRemoteSide remoteside) message $
withDATA (relayGET remoteside)
- handlePUT (remoteside:[]) k message =
- getresponse (runRemoteSide remoteside) message $ \resp -> case resp of
- ALREADY_HAVE -> protoerrhandler proxynextclientmessage $
- client $ net $ sendMessage resp
- ALREADY_HAVE_PLUS _ -> protoerrhandler proxynextclientmessage $
- client $ net $ sendMessage resp
- PUT_FROM _ ->
- getresponse client resp $
- withDATA (relayPUT remoteside k)
- _ -> protoerr
+ handlePUT (remoteside:[]) k message
+ | remoteUUID remoteside == remoteuuid =
+ getresponse (runRemoteSide remoteside) message $ \resp -> case resp of
+ ALREADY_HAVE -> protoerrhandler proxynextclientmessage $
+ client $ net $ sendMessage resp
+ ALREADY_HAVE_PLUS _ -> protoerrhandler proxynextclientmessage $
+ client $ net $ sendMessage resp
+ PUT_FROM _ ->
+ getresponse client resp $
+ withDATA (relayPUT remoteside k)
+ _ -> protoerr
handlePUT [] _ _ =
protoerrhandler proxynextclientmessage $
client $ net $ sendMessage ALREADY_HAVE
client $ net $ sendMessage $
case concat (catMaybes storeduuids) of
[] -> FAILURE
- (_u:[]) -> SUCCESS
us
| protocolversion < 2 -> SUCCESS
| otherwise -> SUCCESS_PLUS us
check may fail to realize that dropping from multiple nodes does in fact
make it worse.
-* Bug: When a cluster has one node, copying a file to it does not update
- location log to say the content is present on it. It's returning SUCCESS
- rather than SUCCESS-PLUS.
-
* Support annex.jobs for clusters.
* On upload to a cluster, as well as fanout to nodes, if the key is