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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to