Author: norman
Date: Fri Feb  4 12:50:45 2011
New Revision: 1067173

URL: http://svn.apache.org/viewvc?rev=1067173&view=rev
Log:
Set a higher default for the max linelength when using imap. Related to 
JAMES-1190

Modified:
    james/server/trunk/container-spring/src/main/config/james/imapserver.xml
    
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java

Modified: 
james/server/trunk/container-spring/src/main/config/james/imapserver.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/imapserver.xml?rev=1067173&r1=1067172&r2=1067173&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/config/james/imapserver.xml 
(original)
+++ james/server/trunk/container-spring/src/main/config/james/imapserver.xml 
Fri Feb  4 12:50:45 2011
@@ -27,6 +27,10 @@
   </tls>
   <!-- COMPRESS extension -->
   <compress>false</compress>
+  
+  <!-- Maximal allowed line-length before a BAD response will get returned to 
the client -->
+  <!-- This should be set with caution as a to high value can make the server 
a target for DOS! -->
+  <maxLineLength>65536</maxLineLength>
   <handler>
       <connectionLimit> 0 </connectionLimit>
       <connectionLimitPerIP> 0 </connectionLimitPerIP>

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=1067173&r1=1067172&r2=1067173&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
 Fri Feb  4 12:50:45 2011
@@ -58,6 +58,11 @@ public class IMAPServer extends Abstract
 
     private boolean compress;
 
+    private int maxLineLength;
+    
+    // Use a big default
+    public final static int DEFAULT_MAX_LINE_LENGTH = 65536;
+
     @Resource(name="imapDecoder")
     public void setImapDecoder(ImapDecoder decoder) {
         this.decoder = decoder;
@@ -78,6 +83,7 @@ public class IMAPServer extends Abstract
         super.doConfigure(configuration);
         hello  = softwaretype + " Server " + getHelloName() + " is ready.";
         compress = configuration.getBoolean("compress", false);
+        maxLineLength = configuration.getInt("maxLineLength", 
DEFAULT_MAX_LINE_LENGTH);
     }
     
     
@@ -106,7 +112,6 @@ public class IMAPServer extends Abstract
             
             // Timeout of 30 minutes See rfc2060 5.4 for details
             private final static int TIMEOUT = 30 * 60;
-            public final static int MAX_LINE_LENGTH = 8192;
 
             public ChannelPipeline getPipeline() throws Exception {
                 ChannelPipeline pipeline = pipeline();
@@ -119,7 +124,7 @@ public class IMAPServer extends Abstract
 
                 
                 // Add the text line decoder which limit the max line length, 
don't strip the delimiter and use CRLF as delimiter
-                pipeline.addLast(FRAMER, new 
DelimiterBasedFrameDecoder(MAX_LINE_LENGTH, false, Delimiters.lineDelimiter()));
+                pipeline.addLast(FRAMER, new 
DelimiterBasedFrameDecoder(maxLineLength, false, Delimiters.lineDelimiter()));
                 pipeline.addLast(REQUEST_DECODER, new 
ImapRequestFrameDecoder(decoder));
 
                 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to