aboutsummaryrefslogtreecommitdiffstats
path: root/lib/net
diff options
context:
space:
mode:
Diffstat (limited to 'lib/net')
-rw-r--r--lib/net/ftp.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb
index fe244f0775..26f4da277b 100644
--- a/lib/net/ftp.rb
+++ b/lib/net/ftp.rb
@@ -291,6 +291,13 @@ module Net
putline(cmd)
voidresp
end
+ rescue Errno::EPIPE
+ # EPIPE, in this case, means that the data connection was unexpectedly
+ # terminated. Rather than just raising EPIPE to the caller, check the
+ # response on the control connection. If getresp doesn't raise a more
+ # appropriate exception, re-raise the original exception.
+ getresp
+ raise
end
def sendport(host, port)
@@ -427,6 +434,13 @@ module Net
voidresp
end
end
+ rescue Errno::EPIPE
+ # EPIPE, in this case, means that the data connection was unexpectedly
+ # terminated. Rather than just raising EPIPE to the caller, check the
+ # response on the control connection. If getresp doesn't raise a more
+ # appropriate exception, re-raise the original exception.
+ getresp
+ raise
end
#