Fix Patch
handler bugs #1338
1 changed files with 12 additions and 0 deletions
|
@ -30,6 +30,12 @@ type rangeProvider struct {
|
|||
var _ patcherSDK.RangeProvider = (*rangeProvider)(nil)
|
||||
|
||||
func (r *rangeProvider) GetRange(ctx context.Context, rng *objectSDK.Range) io.Reader {
|
||||
// Remote GetRange request to a container node uses an SDK-client that fails range validation
|
||||
// with zero-length. However, from the patcher's point of view, such request is still valid.
|
||||
if rng.GetLength() == 0 {
|
||||
return &nopReader{}
|
||||
}
|
||||
|
||||
pipeReader, pipeWriter := io.Pipe()
|
||||
|
||||
var rngPrm getsvc.RangePrm
|
||||
|
@ -61,3 +67,9 @@ func (r *rangeProvider) GetRange(ctx context.Context, rng *objectSDK.Range) io.R
|
|||
|
||||
return pipeReader
|
||||
}
|
||||
|
||||
type nopReader struct{}
|
||||
|
||||
func (nopReader) Read(_ []byte) (int, error) {
|
||||
return 0, io.EOF
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue