Tomislav, FTPSERVER is not under active development. I will accept a patch to add RFC2228 if you are willing to put in the effort to write the code and unit tests.
Cheers, J On Wed, Jun 20, 2018 at 2:57 AM, Tomislav Haramustek < [email protected]> wrote: > Hello, > > I am wondering is there any plan for full RFC2228 commands support? At the > moment, there are just 3 commands implemented (AUTH, PROT and PBZS). > > I need to have CCC command supported, so I tried to implement it by > myself. Basically, what I did is following (Scala code) > > session.resetState() > session.setAttribute(SslFilter.SESSION_UNSECURED) > session.getDataConnection.setSecure(false) > session.write(LocalizedFtpReply.translate(session, request, context, > FtpReply.REPLY_200_COMMAND_OKAY, "CCC", null)) > And everything seemed fine at first, but it seems that nothing is replied > to any other further command received. In this exact case, the PASV command > is received and it seems its execute method runs and finishes fine (I have > even override it to add some more logging to prove that the whole methods > is executed, i.e. it does not stuck anywhere, and that session.write call > at the end is also executed. And that seems to be true. But, there is no > SENT: 200 in the log after that. Please find the log below. The log lines > from logger c.a.a.b are the logging added to overridden PASV command. I am > wondering why there is no log entry for sent response to PASV, something > like SENT: 227? > > 2018-06-20 05:26:10.220UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > CREATED > 2018-06-20 05:26:10.221UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > OPENED > 2018-06-20 05:26:10.223UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > SENT: 220 Service ready for new user. > > 2018-06-20 05:26:10.229UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: AUTH TLS > 2018-06-20 05:26:10.285UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > SENT: 234 Command AUTH okay; starting TLS connection. > > 2018-06-20 05:26:10.478UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: PBSZ 0 > 2018-06-20 05:26:10.480UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > SENT: 200 Command PBSZ okay. > > 2018-06-20 05:26:10.481UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: PROT P > 2018-06-20 05:26:10.483UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > SENT: 200 Command PROT okay. > > 2018-06-20 05:26:10.484UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: USER ja > 2018-06-20 05:26:10.484UTC [DEBUG org.apache.ftpserver.command.impl.USER] > Currently 0 out of 10 anonymous users logged in > 2018-06-20 05:26:10.485UTC [DEBUG org.apache.ftpserver.command.impl.USER] > Currently 0 out of 10 users logged in > 2018-06-20 05:26:10.486UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > SENT: 331 User name okay, need password for ja. > > 2018-06-20 05:26:10.488UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: PASS ***** > 2018-06-20 05:26:10.488UTC [DEBUG org.apache.ftpserver.command.impl.PASS] > Currently 0 out of 10 users logged in > 2018-06-20 05:26:10.489UTC [DEBUG o.a.f.f.nativefs.impl.NativeFileSystemView] > Native filesystem view created for user "ja" with root "C:/Users/ja/" > 2018-06-20 05:26:10.490UTC [INFO org.apache.ftpserver.command.impl.PASS] > Login success - ja > 2018-06-20 05:26:10.490UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > SENT: 230 User logged in, proceed. > > 2018-06-20 05:26:10.492UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: TYPE I > 2018-06-20 05:26:10.493UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > SENT: 200 Command TYPE okay. > > 2018-06-20 05:26:10.495UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: CCC > 2018-06-20 05:26:10.497UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > SENT: 200 [My implementation of CCC returned this] > > 2018-06-20 05:26:10.519UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: PASV > 2018-06-20 05:26:10.519UTC [DEBUG o.a.ftpserver.impl.IODataConnectionFactory] > Initiating passive data connection > 2018-06-20 05:26:10.520UTC [DEBUG o.a.ftpserver.impl.IODataConnectionFactory] > Opening passive data connection on address "/192.168.0.1" and port 0 > 2018-06-20 05:26:10.520UTC [DEBUG o.a.ftpserver.impl.IODataConnectionFactory] > Passive data connection created on address "/192.168.0.1" and port 0 > 2018-06-20 05:26:10.520UTC [INFO c.a.a.b] Data conn address: 192.168.0.1 > 2018-06-20 05:26:10.520UTC [INFO c.a.a.b] Server address: 192.168.0.1 > 2018-06-20 05:26:10.521UTC [INFO c.a.a.b] External address: 192.168.0.1 > 2018-06-20 05:26:10.521UTC [INFO c.a.a.b] External address string: > 192,168,0,1,227,90 > 2018-06-20 05:26:10.521UTC [INFO c.a.a.b] Replied to client: 227 > 2018-06-20 05:26:10.531UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: LIST file/packcfg.xml > 2018-06-20 05:26:10.533UTC [DEBUG o.a.ftpserver.impl.IODataConnectionFactory] > Opening passive data connection > 2018-06-20 05:26:10.535UTC [DEBUG o.a.ftpserver.impl.IODataConnectionFactory] > Passive data connection opened > 2018-06-20 05:26:10.536UTC [DEBUG > o.a.f.filesystem.nativefs.impl.NativeFtpFile] > Checking authorization for /files/packcfg.xml > 2018-06-20 05:26:10.536UTC [DEBUG > o.a.f.filesystem.nativefs.impl.NativeFtpFile] > Checking if file exists > 2018-06-20 05:26:10.536UTC [DEBUG > o.a.f.filesystem.nativefs.impl.NativeFtpFile] > Checking can write: true > 2018-06-20 05:26:10.537UTC [WARN org.apache.ftpserver.impl.PassivePorts] > Releasing unreserved passive port: 58202 > 2018-06-20 05:26:10.544UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: PASV > 2018-06-20 05:26:10.545UTC [DEBUG o.a.ftpserver.impl.IODataConnectionFactory] > Initiating passive data connection > 2018-06-20 05:26:10.545UTC [DEBUG o.a.ftpserver.impl.IODataConnectionFactory] > Opening passive data connection on address "/192.168.0.1" and port 0 > 2018-06-20 05:26:10.545UTC [DEBUG o.a.ftpserver.impl.IODataConnectionFactory] > Passive data connection created on address "/192.168.0.1" and port 0 > 2018-06-20 05:26:10.546UTC [INFO c.a.a.b] Data conn address: 192.168.0.1 > 2018-06-20 05:26:10.546UTC [INFO c.a.a.b] Server address: 192.168.0.1 > 2018-06-20 05:26:10.546UTC [INFO c.a.a.b] External address: 192.168.0.1 > 2018-06-20 05:26:10.546UTC [INFO c.a.a.b] External address string: > 192,168,0,1,227,91 > 2018-06-20 05:26:10.546UTC [INFO c.a.a.b] Replied to client: 227 > 2018-06-20 05:26:10.549UTC [INFO o.a.ftpserver.listener.nio.FtpLoggingFilter] > RECEIVED: ABORT > > Best regards, > Tomislav Haramustek
