Index: net/ftp/ftp_network_transaction.cc |
diff --git a/net/ftp/ftp_network_transaction.cc b/net/ftp/ftp_network_transaction.cc |
index 212ec26476e38a7539181ff992ce7ee5ac5321bd..c5c9daf42787de5b79e86adeb4c17e9fa1df1a49 100644 |
--- a/net/ftp/ftp_network_transaction.cc |
+++ b/net/ftp/ftp_network_transaction.cc |
@@ -981,6 +981,10 @@ int FtpNetworkTransaction::DoDataRead() { |
DCHECK_GT(read_data_buf_len_, 0); |
if (data_socket_ == NULL || !data_socket_->IsConnected()) { |
+ // If we don't destroy the data socket completely, some servers will wait |
wtc
2009/09/09 20:20:42
It would be nice to explain that a half-closed TCP
|
+ // for us (http://crbug.com/21127). |
+ data_socket_.reset(); |
+ |
// No more data so send QUIT Command now and wait for response. |
return Stop(OK); |
} |