@@ -44,7 +44,7 @@ func (a *BasicTransferAdapter) Download(ctx context.Context, l *Link) (io.ReadCl
44
44
45
45
// Upload sends the content to the LFS server
46
46
func (a * BasicTransferAdapter ) Upload (ctx context.Context , l * Link , p Pointer , r io.Reader ) error {
47
- _ , err := a .performRequest (ctx , "PUT" , l , r , func (req * http.Request ) {
47
+ res , err := a .performRequest (ctx , "PUT" , l , r , func (req * http.Request ) {
48
48
if len (req .Header .Get ("Content-Type" )) == 0 {
49
49
req .Header .Set ("Content-Type" , "application/octet-stream" )
50
50
}
@@ -58,6 +58,7 @@ func (a *BasicTransferAdapter) Upload(ctx context.Context, l *Link, p Pointer, r
58
58
if err != nil {
59
59
return err
60
60
}
61
+ defer res .Body .Close ()
61
62
return nil
62
63
}
63
64
@@ -69,15 +70,19 @@ func (a *BasicTransferAdapter) Verify(ctx context.Context, l *Link, p Pointer) e
69
70
return err
70
71
}
71
72
72
- _ , err = a .performRequest (ctx , "POST" , l , bytes .NewReader (b ), func (req * http.Request ) {
73
+ res , err : = a .performRequest (ctx , "POST" , l , bytes .NewReader (b ), func (req * http.Request ) {
73
74
req .Header .Set ("Content-Type" , MediaType )
74
75
})
75
76
if err != nil {
76
77
return err
77
78
}
79
+ defer res .Body .Close ()
78
80
return nil
79
81
}
80
82
83
+ // performRequest sends a request, optionally performs a callback on the request and returns the response.
84
+ // If the status code is 200, the response is returned, and it will contain a non-nil Body.
85
+ // Otherwise, it will return an error, and the Body will be nil or closed.
81
86
func (a * BasicTransferAdapter ) performRequest (ctx context.Context , method string , l * Link , body io.Reader , callback func (* http.Request )) (* http.Response , error ) {
82
87
log .Trace ("Calling: %s %s" , method , l .Href )
83
88
@@ -118,7 +123,7 @@ func handleErrorResponse(resp *http.Response) error {
118
123
119
124
er , err := decodeResponseError (resp .Body )
120
125
if err != nil {
121
- return fmt .Errorf ("Request failed with status %s" , resp .Status )
126
+ return fmt .Errorf ("request failed with status %s" , resp .Status )
122
127
}
123
128
log .Trace ("ErrorRespone: %v" , er )
124
129
return errors .New (er .Message )
0 commit comments