ftp: fix errors from Close of a stream which hasn't been fully read

This commit is contained in:
Nick Craig-Wood 2017-05-19 12:21:24 +01:00
parent 412dacf8be
commit e172f00e0e

View file

@ -1,8 +1,6 @@
// Package ftp interfaces with FTP servers
package ftp
// FIXME Mover and DirMover are possible using c.Rename
import (
"io"
"net/textproto"
@ -568,6 +566,13 @@ type ftpReadCloser struct {
// Close the FTP reader and return the connection to the pool
func (f *ftpReadCloser) Close() error {
err := f.ReadCloser.Close()
switch errX := err.(type) {
case *textproto.Error:
switch errX.Code {
case ftp.StatusTransfertAborted, ftp.StatusFileUnavailable:
err = nil
}
}
f.f.putFtpConnection(&f.c)
return err
}