[
https://issues.apache.org/jira/browse/FTPSERVER-369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aniceto Pérez y Madrid updated FTPSERVER-369:
---------------------------------------------
Attachment: ftp4j-1.5.jar
Main.java
David
I used ftp-server 1.0.4 unmodified using ftpd-typical.xml. Access is
always named, not anonymous, and the problems arise running on Linux and
Windows. I'm sending you a Java class and a free ftp library for you to
test it. Just run the ftpserver as bin\ftpd res\conf\ftpd-typical.xml
and then run the Java class.
Regards
Aniceto Perez
--
Aniceto Pérez y Madrid [email protected]
<mailto:[email protected]>
Director General
*Innovasoft Proyectos y Servicios, SL*
Ferraz, 28 2º izq
E-28008 MADRID
Tel: +34 915 488 601
http://www.innovasoftps.com
Acceda remotamente a su ordenador Windows con Famatech Radmin
http://www.innovasoftps.com
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ftpsmasher;
import it.sauronsoftware.ftp4j.FTPAbortedException;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPDataTransferException;
import it.sauronsoftware.ftp4j.FTPException;
import it.sauronsoftware.ftp4j.FTPFile;
import it.sauronsoftware.ftp4j.FTPIllegalReplyException;
import it.sauronsoftware.ftp4j.FTPListParseException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Administrador
*/
public class Main {
String ftpHost = "localhost", ftpUser = "admin", ftpPasswd = "admin";
int ftpPort = 2121;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Main();
}
Main() {
while (true) {
try {
try {
Thread.sleep(300);
} catch (Exception e) {
}
FTPClient ftp = new it.sauronsoftware.ftp4j.FTPClient();
ftp.connect(ftpHost, ftpPort);
ftp.login(ftpUser, ftpPasswd);
FTPFile[] list = ftp.list("*.*");
try {
ftp.logout();
} catch (Exception ee) {
}
try {
ftp.disconnect(true);
} catch (Exception ee) {
}
} catch (IllegalStateException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,
ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,
ex);
} catch (FTPIllegalReplyException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,
ex);
} catch (FTPException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,
ex);
} catch (FTPDataTransferException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,
ex);
} catch (FTPAbortedException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,
ex);
} catch (FTPListParseException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,
ex);
}
}
}
}
> maxLogin is reached immediately
> --------------------------------
>
> Key: FTPSERVER-369
> URL: https://issues.apache.org/jira/browse/FTPSERVER-369
> Project: FtpServer
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.0.4
> Environment: Linux or Windows
> Reporter: Aniceto Pérez y Madrid
> Fix For: 1.0.5, 1.1.0
>
> Attachments: ftp4j-1.5.jar, Main.java
>
>
> I've created a simple program loop which open, connect and disconnect. If the
> max-logins parameter is set to 10, the message "Too many users logged in,
> user will be disconnected" is issued after 10 loops
> The cause is in DefaultFtpStatistics. In this function
>
> public synchronized void setLogout(final FtpIoSession session) {
> User user = session.getUser();
> if (user == null) {
> return;
> }
> currLogins.decrementAndGet();
> session.getUser() always returns null, so never currLogins.decrementAndGet()
> is called. My workaround is to put that statement before testing user null
> state.
> Why session.getUser() return null is out of my knowledge.
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.