Skip to content

Commit 2600811

Browse files
committed
feat(transport): using loops instead of labels for resumableBoyd.Read()
1 parent 619c7ca commit 2600811

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

pkg/v1/remote/transport/resumable.go

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -92,29 +92,30 @@ func (rb *resumableBody) Read(p []byte) (n int, err error) {
9292
return 0, io.EOF
9393
}
9494

95-
resume:
96-
if n, err = rb.rc.Read(p); n > 0 {
97-
rb.transferred += int64(n)
98-
}
95+
for {
96+
if n, err = rb.rc.Read(p); n > 0 {
97+
rb.transferred += int64(n)
98+
}
9999

100-
if err == nil {
101-
return
102-
}
100+
if err == nil {
101+
return
102+
}
103103

104-
if errors.Is(err, io.EOF) && rb.total >= 0 && rb.transferred == rb.total {
105-
return
106-
}
104+
if errors.Is(err, io.EOF) && rb.total >= 0 && rb.transferred == rb.total {
105+
return
106+
}
107+
108+
if err = rb.resume(err); err == nil {
109+
if n == 0 {
110+
// zero bytes read, try reading again with new response.Body
111+
continue
112+
}
107113

108-
if err = rb.resume(err); err == nil {
109-
if n == 0 {
110-
// zero bytes read, try reading again with new response.Body
111-
goto resume
114+
// already read some bytes from previous response.Body, returns and waits for next Read operation
112115
}
113116

114-
// already read some bytes from previous response.Body, returns and waits for next Read operation
117+
return n, err
115118
}
116-
117-
return n, err
118119
}
119120

120121
func (rb *resumableBody) Close() (err error) {

0 commit comments

Comments
 (0)