You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2012/01/08 21:39:25 UTC

svn commit: r1228949 - /james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java

Author: norman
Date: Sun Jan  8 20:39:25 2012
New Revision: 1228949

URL: http://svn.apache.org/viewvc?rev=1228949&view=rev
Log:
Allow to disable the auto-logout-timer in imap. See JAMES-1363

Modified:
    james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java

Modified: james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java?rev=1228949&r1=1228948&r2=1228949&view=diff
==============================================================================
--- james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java (original)
+++ james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java Sun Jan  8 20:39:25 2012
@@ -71,13 +71,18 @@ public class IMAPServer extends Abstract
     private boolean plainAuthDisallowed;
     
     
-
+    private int timeout;
+    
     // Use a big default
     public final static int DEFAULT_MAX_LINE_LENGTH = 65536;
 
     // Use 10MB as default
     public final static int DEFAULT_IN_MEMORY_SIZE_LIMIT = 10485760;
 
+    // default timeout is 30 seconds
+    public final static int DEFAULT_TIMEOUT = 30 * 60;
+
+    
     @Resource(name = "imapDecoder")
     public void setImapDecoder(ImapDecoder decoder) {
         this.decoder = decoder;
@@ -101,6 +106,10 @@ public class IMAPServer extends Abstract
         maxLineLength = configuration.getInt("maxLineLength", DEFAULT_MAX_LINE_LENGTH);
         inMemorySizeLimit = configuration.getInt("inMemorySizeLimit", DEFAULT_IN_MEMORY_SIZE_LIMIT);
         plainAuthDisallowed = configuration.getBoolean("plainAuthDisallowed", false);
+        timeout = configuration.getInt("timeout", DEFAULT_TIMEOUT);
+        if (timeout < DEFAULT_TIMEOUT) {
+            throw new ConfigurationException("Minimum timeout of 30 minutes required. See rfc2060 5.4 for details");
+        }
     }
 
     /**
@@ -124,14 +133,12 @@ public class IMAPServer extends Abstract
             private final ChannelGroupHandler groupHandler = new ChannelGroupHandler(group);
             private final HashedWheelTimer timer = new HashedWheelTimer();
             
-            // Timeout of 30 minutes See rfc2060 5.4 for details
-            private final static int TIMEOUT = 60 * 30;
             private final TimeUnit TIMEOUT_UNIT = TimeUnit.SECONDS;
 
             public ChannelPipeline getPipeline() throws Exception {
                 ChannelPipeline pipeline = pipeline();
                 pipeline.addLast(GROUP_HANDLER, groupHandler);
-                pipeline.addLast("idleHandler", new IdleStateHandler(timer, 0, 0, TIMEOUT, TIMEOUT_UNIT));
+                pipeline.addLast("idleHandler", new IdleStateHandler(timer, 0, 0, timeout, TIMEOUT_UNIT));
                 pipeline.addLast(TIMEOUT_HANDLER, new ImapIdleStateHandler());
                 pipeline.addLast(CONNECTION_LIMIT_HANDLER, new ConnectionLimitUpstreamHandler(IMAPServer.this.connectionLimit));
 



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org