diff --git a/fs/filter.go b/fs/filter.go index 639d6013d..d3e8173fa 100644 --- a/fs/filter.go +++ b/fs/filter.go @@ -305,7 +305,7 @@ func forEachLine(path string, fn func(string) error) (err error) { if err != nil { return err } - defer checkClose(in, &err) + defer CheckClose(in, &err) scanner := bufio.NewScanner(in) for scanner.Scan() { line := scanner.Text() diff --git a/fs/fs.go b/fs/fs.go index 5188870e3..aef392093 100644 --- a/fs/fs.go +++ b/fs/fs.go @@ -305,9 +305,9 @@ func ErrorLog(o interface{}, text string, args ...interface{}) { OutputLog(o, text, args...) } -// checkClose is a utility function used to check the return from +// CheckClose is a utility function used to check the return from // Close in a defer statement. -func checkClose(c io.Closer, err *error) { +func CheckClose(c io.Closer, err *error) { cerr := c.Close() if *err == nil { *err = cerr diff --git a/hubic/hubic.go b/hubic/hubic.go index 35f3047e7..5f522c72f 100644 --- a/hubic/hubic.go +++ b/hubic/hubic.go @@ -9,7 +9,6 @@ package hubic import ( "encoding/json" "fmt" - "io" "log" "net/http" "time" @@ -103,15 +102,6 @@ func (f *Fs) String() string { return fmt.Sprintf("Hubic %s", f.Fs.String()) } -// checkClose is a utility function used to check the return from -// Close in a defer statement. -func checkClose(c io.Closer, err *error) { - cerr := c.Close() - if *err == nil { - *err = cerr - } -} - // getCredentials reads the OpenStack Credentials using the Hubic API // // The credentials are read into the Fs @@ -125,7 +115,7 @@ func (f *Fs) getCredentials() (err error) { if err != nil { return err } - defer checkClose(resp.Body, &err) + defer fs.CheckClose(resp.Body, &err) if resp.StatusCode < 200 || resp.StatusCode > 299 { return fmt.Errorf("Failed to get credentials: %s", resp.Status) } diff --git a/rest/rest.go b/rest/rest.go index cf6e8ec0f..65c17d80e 100644 --- a/rest/rest.go +++ b/rest/rest.go @@ -29,7 +29,7 @@ func NewClient(c *http.Client, rootURL string) *Client { // defaultErrorHandler doesn't attempt to parse the http body func defaultErrorHandler(resp *http.Response) (err error) { - defer checkClose(resp.Body, &err) + defer fs.CheckClose(resp.Body, &err) return fmt.Errorf("HTTP error %v (%v) returned", resp.StatusCode, resp.Status) } @@ -52,18 +52,9 @@ type Opts struct { ExtraHeaders map[string]string } -// checkClose is a utility function used to check the return from -// Close in a defer statement. -func checkClose(c io.Closer, err *error) { - cerr := c.Close() - if *err == nil { - *err = cerr - } -} - // DecodeJSON decodes resp.Body into result func DecodeJSON(resp *http.Response, result interface{}) (err error) { - defer checkClose(resp.Body, &err) + defer fs.CheckClose(resp.Body, &err) decoder := json.NewDecoder(resp.Body) return decoder.Decode(result) }