Author: markt
Date: Sun Mar 17 19:25:38 2013
New Revision: 1457529
URL: http://svn.apache.org/r1457529
Log:
Fix parsing of HTTP headers. The parser was reading beyond the end of the HTTP
response and swallowing and pipe-lined WebSocket messages.
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1457529&r1=1457528&r2=1457529&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Sun
Mar 17 19:25:38 2013
@@ -76,7 +76,6 @@ public class WsWebSocketContainer
private int processPeriod = 10;
-
@Override
public Session connectToServer(Object pojo, URI path)
throws DeploymentException {
@@ -410,7 +409,7 @@ public class WsWebSocketContainer
Future<Integer> written = channel.read(response);
written.get();
response.flip();
- while (response.hasRemaining()) {
+ while (response.hasRemaining() && !readHeaders) {
if (line == null) {
line = readLine(response);
} else {
@@ -470,9 +469,12 @@ public class WsWebSocketContainer
StringBuilder sb = new StringBuilder();
char c = 0;
- while (response.hasRemaining() && c != 10) {
+ while (response.hasRemaining()) {
c = (char) response.get();
sb.append(c);
+ if (c == 10) {
+ break;
+ }
}
return sb.toString();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]