Author: norman
Date: Sat Feb 6 18:16:09 2010
New Revision: 907264
URL: http://svn.apache.org/viewvc?rev=907264&view=rev
Log:
fix the LineLengthExceedException throwing
Modified:
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java
Modified:
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java?rev=907264&r1=907263&r2=907264&view=diff
==============================================================================
---
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java
(original)
+++
james/server/trunk/mina-socket/src/main/java/org/apache/james/socket/mina/codec/CRLFTerminatedLineDecoder.java
Sat Feb 6 18:16:09 2010
@@ -49,9 +49,7 @@
*/
protected boolean doDecode(IoSession session, IoBuffer in,
ProtocolDecoderOutput out) throws Exception {
- if (maxLineLength != -1 && in.capacity() > maxLineLength) {
- throw new LineLengthExceededException(maxLineLength,
in.capacity());
- }
+
// Remember the initial position.
int start = in.position();
@@ -59,9 +57,15 @@
// Now find the first CRLF in the buffer.
byte previous = 0;
+ int count = 0;
while (in.hasRemaining()) {
byte current = in.get();
-
+ count++;
+
+ if (maxLineLength != -1 && count > maxLineLength) {
+ throw new LineLengthExceededException(maxLineLength,
in.capacity());
+ }
+
if (previous == '\r' && current == '\n') {
// Remember the current position and limit.
int position = in.position();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]