Author: markt
Date: Tue Aug 19 10:52:44 2014
New Revision: 1618835
URL: http://svn.apache.org/r1618835
Log:
Add plumbing to write reserved bits as set in the MessagePart rather
than hard-coding them to 0.
Re-order method parameters for writing header to align with RFC 6455.
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java?rev=1618835&r1=1618834&r2=1618835&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
Tue Aug 19 10:52:44 2014
@@ -390,8 +390,8 @@ public abstract class WsRemoteEndpointIm
}
headerBuffer.clear();
- writeHeader(headerBuffer, mp.getOpCode(), mp.getPayload(), first,
- mp.isFin(), isMasked(), mask);
+ writeHeader(headerBuffer, mp.isFin(), mp.getRsv(), mp.getOpCode(),
+ isMasked(), mp.getPayload(), mask, first);
headerBuffer.flip();
if (getBatchingAllowed() || isMasked()) {
@@ -549,20 +549,22 @@ public abstract class WsRemoteEndpointIm
protected abstract boolean isMasked();
protected abstract void doClose();
- private static void writeHeader(ByteBuffer headerBuffer, byte opCode,
- ByteBuffer payload, boolean first, boolean last, boolean masked,
- byte[] mask) {
+ private static void writeHeader(ByteBuffer headerBuffer, boolean fin,
+ int rsv, byte opCode, boolean masked, ByteBuffer payload,
+ byte[] mask, boolean first) {
byte b = 0;
- if (last) {
+ if (fin) {
// Set the fin bit
- b = -128;
+ b -= 128;
}
+ b += (rsv << 4);
+
if (first) {
// This is the first fragment of this message
- b = (byte) (b + opCode);
+ b += opCode;
}
// If not the first fragment, it is a continuation with opCode of zero
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]