From c71be910f9dcca83190769aa931594ce57970640 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Sun, 7 May 2017 11:53:47 +0200 Subject: [PATCH] rpc: fix incremental transfer request handling --- rpc/rpc.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/rpc/rpc.go b/rpc/rpc.go index 8e401ce..0dff457 100644 --- a/rpc/rpc.go +++ b/rpc/rpc.go @@ -186,6 +186,15 @@ func ListenByteStreamRPC(conn io.ReadWriteCloser, handler RPCHandler) error { if err != nil { respondWithError(encoder, EHandler, err) } else { + + r := ResponseHeader{ + RequestId: header.Id, + ResponseType: RChunkedStream, + } + if err := encoder.Encode(&r); err != nil { + panic(err) + } + chunker := NewChunker(snapReader) _, err := io.Copy(conn, &chunker) if err != nil { @@ -225,6 +234,8 @@ func inferRequestType(v interface{}) (RequestType, error) { return RTFilesystemVersionsRequest, nil case InitialTransferRequest: return RTInitialTransferRequest, nil + case IncrementalTransferRequest: + return RTIncrementalTransferRequest, nil default: return 0, errors.New(fmt.Sprintf("cannot infer request type for type '%v'", reflect.TypeOf(v)))