You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2009/04/24 21:16:01 UTC
svn commit: r768400 - in
/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver:
DataConnectionConfigurationFactory.java impl/IODataConnection.java
impl/IODataConnectionFactory.java
Author: ngn
Date: Fri Apr 24 19:16:01 2009
New Revision: 768400
URL: http://svn.apache.org/viewvc?rev=768400&view=rev
Log:
Adding timeout on data connection sockets (as well as some extra logging). Fixes FTPSERVER-293.
Modified:
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnectionFactory.java
Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java?rev=768400&r1=768399&r2=768400&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java Fri Apr 24 19:16:01 2009
@@ -25,6 +25,8 @@
import org.apache.ftpserver.impl.DefaultDataConnectionConfiguration;
import org.apache.ftpserver.impl.PassivePorts;
import org.apache.ftpserver.ssl.SslConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Data connection factory
@@ -34,6 +36,8 @@
*/
public class DataConnectionConfigurationFactory {
+ private Logger log = LoggerFactory.getLogger(DataConnectionConfigurationFactory.class);
+
// maximum idle time in seconds
private int idleTime = 300;
private SslConfiguration ssl;
@@ -212,6 +216,7 @@
// no available free port - wait for the release notification
if (dataPort == -1) {
try {
+ log.info("We're waiting for a passive part, might be stuck");
wait();
} catch (InterruptedException ex) {
}
Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java?rev=768400&r1=768399&r2=768400&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java Fri Apr 24 19:16:01 2009
@@ -35,6 +35,8 @@
import org.apache.ftpserver.ftplet.FtpSession;
import org.apache.ftpserver.usermanager.impl.TransferRateRequest;
import org.apache.ftpserver.util.IoUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* <strong>Internal class, do not use directly.</strong>
@@ -47,6 +49,10 @@
*/
public class IODataConnection implements DataConnection {
+ private final Logger LOG = LoggerFactory
+ .getLogger(IODataConnection.class);
+
+
private static final byte[] EOL = System.getProperty("line.separator").getBytes();
private FtpIoSession session;
@@ -284,6 +290,14 @@
notifyObserver();
}
+ } catch(IOException e) {
+ LOG.warn("Exception during data transfer, closing data connection socket", e);
+ factory.closeDataConnection();
+ throw e;
+ } catch(RuntimeException e) {
+ LOG.warn("Exception during data transfer, closing data connection socket", e);
+ factory.closeDataConnection();
+ throw e;
} finally {
if (bos != null) {
bos.flush();
Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnectionFactory.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnectionFactory.java?rev=768400&r1=768399&r2=768400&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnectionFactory.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnectionFactory.java Fri Apr 24 19:16:01 2009
@@ -360,6 +360,10 @@
dataSoc = servSoc.accept();
}
+ DataConnectionConfiguration dataCfg = session.getListener()
+ .getDataConnectionConfiguration();
+
+ dataSoc.setSoTimeout(dataCfg.getIdleTime() * 1000);
LOG.debug("Passive data connection opened");
}
} catch (Exception ex) {