aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/net/ftp.rb14
2 files changed, 19 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index f0511f0152..ebb68e18da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Feb 6 11:18:41 2007 Shugo Maeda <shugo@ruby-lang.org>
+
+ * lib/net/ftp.rb: check the control connection on EPIPE.
+ Thanks, Simon Williams. [ruby-core:9547]
+
Tue Feb 6 11:03:27 2007 Koichi Sasada <ko1@atdot.net>
* complement last commit.
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
#