Niklas Gustavsson (JIRA)
Fri, 26 Oct 2007 05:17:11 -0700
[
https://issues.apache.org/jira/browse/FTPSERVER-112?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Niklas Gustavsson closed FTPSERVER-112.
---------------------------------------
Resolution: Fixed
Fix Version/s: 1.0-M2
Assignee: Niklas Gustavsson
Patch commited, thanks!
commit -m "Fix for closing connections before a reply has been sent
(FTPSERVER-112). Patch by Rico Neubauer."
C:/home/niklas/workspaces/apache/ftpserver/core/src/java/org/apache/ftpserver/listener/mina/FtpResponseEncoder.java
Sending
home/niklas/workspaces/apache/ftpserver/core/src/java/org/apache/ftpserver/listener/mina/FtpResponseEncoder.java
Transmitting file data ...
Committed revision 588620.
> Connection is closed by remote server without waiting for client
> ----------------------------------------------------------------
>
> Key: FTPSERVER-112
> URL: https://issues.apache.org/jira/browse/FTPSERVER-112
> Project: FtpServer
> Issue Type: Bug
> Components: Core
> Reporter: Rico Neubauer
> Assignee: Niklas Gustavsson
> Fix For: 1.0-M2
>
> Attachments: apache-ftpserver-112-patch.patch
>
>
> FTP-Server is using MinaListener as listener class and the corresponding
> MinaFtpResponseOutput to write the replies.
> When sending QUIT to the server, a reply "200 Goodbye." is send back and
> after that the connection is closed from the server. The problem here is that
> the reply is sent asynchronously and the connection is closed before this
> happen.
> MinaFtpResponseOutput#write:
> public void write(FtpReply response) throws IOException {
> session.write(response);
> }
> where session is IoSession interface. The following is the javadoc for this
> method:
> Writes the specified message to remote peer. This operation is asynchronous;
> [EMAIL PROTECTED] IoHandler#messageSent(IoSession, Object)} will be invoked
> when the message is actually sent to remote peer. You can also wait for the
> returned [EMAIL PROTECTED] WriteFuture} if you want to wait for the message
> actually written.
> And in the end the Apache QUIT impl:
> session.resetState();
> out.write(FtpReplyUtil.translate(session,FtpReply.REPLY_221_CLOSING_CONTROL_CONNECTION,
> "QUIT", null));
> connection.getServerContext().getConnectionManager().closeConnection(connection);
> Bottom line: Before actually the client receives the reply, the connection is
> closed. This is happening with certain FTP clients, e.g. FileZilla:
> Command: PWD
> Response: 257 "/" is current directory.
> Status: Directory listing successful
> Command: quit
> Error: Disconnected from server
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.