2013/1/31  <ma...@apache.org>:
> Author: markt
> Date: Thu Jan 31 14:09:31 2013
> New Revision: 1440965
>
> URL: http://svn.apache.org/viewvc?rev=1440965&view=rev
> Log:
> Tweak the buffering so the limits apply to the buffers passed to the client 
> and have no impact on internal processing
>
> Modified:
>     tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java
>
> Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java?rev=1440965&r1=1440964&r2=1440965&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java (original)
> +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java Thu Jan 31 
> 14:09:31 2013
> @@ -399,7 +399,7 @@ public abstract class WsFrameBase {
>      }
>
>
> -    private boolean processDataBinary() {
> +    private boolean processDataBinary() throws IOException {
>          // Copy the available data to the buffer
>          while (!appendPayloadToMessage(messageBufferBinary)) {
>              // Frame not complete - what did we run out of?
> @@ -408,6 +408,14 @@ public abstract class WsFrameBase {
>                  return false;
>              } else {
>                  // Ran out of message buffer - flush it
> +                if (!usePartial()) {
> +                    CloseReason cr = new CloseReason(CloseCodes.TOO_BIG,
> +                            sm.getString("wsFrame.bufferToSmall",

s/To/Too/

> +                                    Integer.valueOf(
> +                                            messageBufferBinary.capacity()),
> +                                    Long.valueOf(payloadLength)));
> +                    throw new WsIOException(cr);
> +                }
>                  messageBufferBinary.flip();
>                  ByteBuffer copy =
>                          ByteBuffer.allocate(messageBufferBinary.limit());
> @@ -487,19 +495,8 @@ public abstract class WsFrameBase {
>      }
>
>
> -    private void checkRoomPayload() throws IOException {
> +    private void checkRoomPayload() {
>          if (inputBuffer.length - readPos - payloadLength + payloadWritten < 
> 0) {
> -            if (Util.isControl(opCode)) {
> -                makeRoom();
> -                return;
> -            }
> -            if (!usePartial() && (inputBuffer.length < payloadLength)) {
> -                CloseReason cr = new CloseReason(CloseCodes.TOO_BIG,
> -                        sm.getString("wsFrame.bufferToSmall",
> -                                Integer.valueOf(inputBuffer.length),
> -                                Long.valueOf(payloadLength)));
> -                throw new WsIOException(cr);
> -            }
>              makeRoom();
>          }
>      }
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to