From 12abb3c59cf0383619fc8f0bb162433a181e2b82 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Fri, 29 Jul 2016 15:47:24 -0700 Subject: [PATCH] GUACAMOLE-67: Always clean up the connection upon WebSocket error. --- .../guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java | 1 + .../tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java | 1 + .../websocket/jetty9/GuacamoleWebSocketTunnelListener.java | 1 + .../tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java | 1 + 4 files changed, 4 insertions(+) diff --git a/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java b/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java index e0aa44224..e5943ebf3 100644 --- a/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java +++ b/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java @@ -198,6 +198,7 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { } catch (IOException e) { logger.debug("I/O error prevents further reads.", e); + closeConnection(session, GuacamoleStatus.SERVER_ERROR); } } diff --git a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java index 933ff654f..8f7e39e6d 100644 --- a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java +++ b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java @@ -185,6 +185,7 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { } catch (IOException e) { logger.debug("WebSocket tunnel read failed due to I/O error.", e); + closeConnection(connection, GuacamoleStatus.SERVER_ERROR); } } diff --git a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java index 89105fc99..3224f8975 100644 --- a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java +++ b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java @@ -176,6 +176,7 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe } catch (IOException e) { logger.debug("I/O error prevents further reads.", e); + closeConnection(session, GuacamoleStatus.SERVER_ERROR); } } diff --git a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java index 1b9098f9b..498167570 100644 --- a/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java +++ b/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java @@ -213,6 +213,7 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { } catch (IOException e) { logger.debug("I/O error prevents further reads.", e); + closeConnection(outbound, GuacamoleStatus.SERVER_ERROR); } }