summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorshugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-06 02:19:01 +0000
committershugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-06 02:19:01 +0000
commitd4d5f27077dd356fb2bef031991864777cc54ef6 (patch)
tree896b38e4dd284d5be588e69c7b18f1d0ddd94246 /lib
parent46cceb5a741148766eadf60f57139123d396f6d6 (diff)
* lib/net/ftp.rb: check the control connection on EPIPE.
Thanks, Simon Williams. [ruby-core:9547] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-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
#