You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by mj...@apache.org on 2018/02/14 23:42:04 UTC

[09/12] guacamole-client git commit: GUACAMOLE-504: Reimplement closeConnection() with int parameters.

GUACAMOLE-504: Reimplement closeConnection() with int parameters.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/bb1670a8
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/bb1670a8
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/bb1670a8

Branch: refs/heads/master
Commit: bb1670a808d90b43e36a11a162daf8f38ef86e4c
Parents: e996a5a
Author: Nick Couchman <vn...@apache.org>
Authored: Sat Feb 10 15:13:19 2018 -0500
Committer: Nick Couchman <vn...@apache.org>
Committed: Sat Feb 10 15:13:19 2018 -0500

----------------------------------------------------------------------
 .../GuacamoleWebSocketTunnelEndpoint.java       | 26 ++++++++--------
 .../jetty8/GuacamoleWebSocketTunnelServlet.java | 32 ++++++++++++--------
 .../GuacamoleWebSocketTunnelListener.java       | 28 +++++++++--------
 .../tomcat/GuacamoleWebSocketTunnelServlet.java | 29 ++++++++++--------
 4 files changed, 67 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb1670a8/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java
----------------------------------------------------------------------
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 46ba1f9..492ca4c 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
@@ -73,14 +73,12 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint {
      * @param guac_status The status to send.
      * @param webSocketCode The numeric WebSocket status to send.
      */
-    private void closeConnection(Session session, GuacamoleStatus guac_status,
-            Integer webSocketCode) {
+    private void closeConnection(Session session, int guacamoleStatusCode,
+            int webSocketCode) {
 
         try {
-            if (webSocketCode == null)
-                webSocketCode = guac_status.getWebSocketCode();
             CloseCode code = CloseReason.CloseCodes.getCloseCode(webSocketCode);
-            String message = Integer.toString(guac_status.getGuacamoleStatusCode());
+            String message = Integer.toString(guacamoleStatusCode);
             session.close(new CloseReason(code, message));
         }
         catch (IOException e) {
@@ -113,7 +111,8 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint {
             // Get tunnel
             tunnel = createTunnel(session, config);
             if (tunnel == null) {
-                closeConnection(session, GuacamoleStatus.RESOURCE_NOT_FOUND, null);
+                closeConnection(session, GuacamoleStatus.RESOURCE_NOT_FOUND.getGuacamoleStatusCode(),
+                        GuacamoleStatus.RESOURCE_NOT_FOUND.getWebSocketCode());
                 return;
             }
 
@@ -121,7 +120,7 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint {
         catch (GuacamoleException e) {
             logger.error("Creation of WebSocket tunnel to guacd failed: {}", e.getMessage());
             logger.debug("Error connecting WebSocket tunnel.", e);
-            closeConnection(session, e.getStatus(), e.getWebSocketCode());
+            closeConnection(session, e.getStatus().getGuacamoleStatusCode(), e.getWebSocketCode());
             return;
         }
 
@@ -175,7 +174,8 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint {
                         }
 
                         // No more data
-                        closeConnection(session, GuacamoleStatus.SUCCESS, null);
+                        closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+                                GuacamoleStatus.SUCCESS.getWebSocketCode());
 
                     }
 
@@ -185,22 +185,24 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint {
                     catch (GuacamoleClientException e) {
                         logger.info("WebSocket connection terminated: {}", e.getMessage());
                         logger.debug("WebSocket connection terminated due to client error.", e);
-                        closeConnection(session, e.getStatus(), e.getWebSocketCode());
+                        closeConnection(session, e.getStatus().getGuacamoleStatusCode(), e.getWebSocketCode());
                     }
                     catch (GuacamoleConnectionClosedException e) {
                         logger.debug("Connection to guacd closed.", e);
-                        closeConnection(session, GuacamoleStatus.SUCCESS, null);
+                        closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+                                GuacamoleStatus.SUCCESS.getWebSocketCode());
                     }
                     catch (GuacamoleException e) {
                         logger.error("Connection to guacd terminated abnormally: {}", e.getMessage());
                         logger.debug("Internal error during connection to guacd.", e);
-                        closeConnection(session, e.getStatus(), e.getWebSocketCode());
+                        closeConnection(session, e.getStatus().getGuacamoleStatusCode(), e.getWebSocketCode());
                     }
 
                 }
                 catch (IOException e) {
                     logger.debug("I/O error prevents further reads.", e);
-                    closeConnection(session, GuacamoleStatus.SERVER_ERROR, null);
+                    closeConnection(session, GuacamoleStatus.SERVER_ERROR.getGuacamoleStatusCode(),
+                            GuacamoleStatus.SERVER_ERROR.getWebSocketCode());
                 }
 
             }

http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb1670a8/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java
----------------------------------------------------------------------
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 a5c27f4..6a7b76f 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
@@ -61,13 +61,10 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet {
      * @param webSocketCode The numeric WebSocket status code to send.
      */
     private static void closeConnection(Connection connection,
-            GuacamoleStatus guac_status, Integer webSocketCode) {
-
-        if (webSocketCode == null)
-            webSocketCode = guac_status.getWebSocketCode();
+            int guacamoleStatusCode, int webSocketCode) {
 
         connection.close(webSocketCode,
-                Integer.toString(guac_status.getGuacamoleStatusCode()));
+                Integer.toString(guacamoleStatusCode));
 
     }
 
@@ -118,13 +115,16 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet {
                 catch (GuacamoleException e) {
                     logger.error("Creation of WebSocket tunnel to guacd failed: {}", e.getMessage());
                     logger.debug("Error connecting WebSocket tunnel.", e);
-                    closeConnection(connection, e.getStatus(), e.getWebSocketCode());
+                    closeConnection(connection, e.getStatus().getGuacamoleStatusCode(),
+                            e.getWebSocketCode());
                     return;
                 }
 
                 // Do not start connection if tunnel does not exist
                 if (tunnel == null) {
-                    closeConnection(connection, GuacamoleStatus.RESOURCE_NOT_FOUND, null);
+                    closeConnection(connection,
+                            GuacamoleStatus.RESOURCE_NOT_FOUND.getGuacamoleStatusCode(),
+                            GuacamoleStatus.RESOURCE_NOT_FOUND.getWebSocketCode());
                     return;
                 }
 
@@ -162,7 +162,9 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet {
                                 }
 
                                 // No more data
-                                closeConnection(connection, GuacamoleStatus.SUCCESS, null);
+                                closeConnection(connection,
+                                        GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+                                        GuacamoleStatus.SUCCESS.getWebSocketCode());
                                 
                             }
 
@@ -172,22 +174,28 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet {
                             catch (GuacamoleClientException e) {
                                 logger.info("WebSocket connection terminated: {}", e.getMessage());
                                 logger.debug("WebSocket connection terminated due to client error.", e);
-                                closeConnection(connection, e.getStatus(), e.getWebSocketCode());
+                                closeConnection(connection, e.getStatus().getGuacamoleStatusCode(),
+                                        e.getWebSocketCode());
                             }
                             catch (GuacamoleConnectionClosedException e) {
                                 logger.debug("Connection to guacd closed.", e);
-                                closeConnection(connection, GuacamoleStatus.SUCCESS, null);
+                                closeConnection(connection,
+                                        GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+                                        GuacamoleStatus.SUCCESS.getWebSocketCode());
                             }
                             catch (GuacamoleException e) {
                                 logger.error("Connection to guacd terminated abnormally: {}", e.getMessage());
                                 logger.debug("Internal error during connection to guacd.", e);
-                                closeConnection(connection, e.getStatus(), e.getWebSocketCode());
+                                closeConnection(connection, e.getStatus().getGuacamoleStatusCode(),
+                                        e.getWebSocketCode());
                             }
 
                         }
                         catch (IOException e) {
                             logger.debug("WebSocket tunnel read failed due to I/O error.", e);
-                            closeConnection(connection, GuacamoleStatus.SERVER_ERROR, null);
+                            closeConnection(connection,
+                                    GuacamoleStatus.SERVER_ERROR.getGuacamoleStatusCode(),
+                                    GuacamoleStatus.SERVER_ERROR.getWebSocketCode());
                         }
 
                     }

http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb1670a8/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/jetty9/GuacamoleWebSocketTunnelListener.java
----------------------------------------------------------------------
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 51a3b76..93dc43f 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
@@ -64,13 +64,11 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe
      * @param guac_status The status to send.
      * @param webSocketCode The numeric WebSocket status code to send.
      */
-    private void closeConnection(Session session, GuacamoleStatus guac_status,
-            Integer webSocketCode) {
+    private void closeConnection(Session session, int guacamoleStatusCode,
+            int webSocketCode) {
 
         try {
-            if (webSocketCode == null)
-                webSocketCode = guac_status.getWebSocketCode();
-            String message = Integer.toString(guac_status.getGuacamoleStatusCode());
+            String message = Integer.toString(guacamoleStatusCode);
             session.close(new CloseStatus(webSocketCode, message));
         }
         catch (IOException e) {
@@ -100,7 +98,8 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe
             // Get tunnel
             tunnel = createTunnel(session);
             if (tunnel == null) {
-                closeConnection(session, GuacamoleStatus.RESOURCE_NOT_FOUND, null);
+                closeConnection(session, GuacamoleStatus.RESOURCE_NOT_FOUND.getGuacamoleStatusCode(),
+                        GuacamoleStatus.RESOURCE_NOT_FOUND.getWebSocketCode());
                 return;
             }
 
@@ -108,7 +107,7 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe
         catch (GuacamoleException e) {
             logger.error("Creation of WebSocket tunnel to guacd failed: {}", e.getMessage());
             logger.debug("Error connecting WebSocket tunnel.", e);
-            closeConnection(session, e.getStatus(), e.getWebSocketCode());
+            closeConnection(session, e.getStatus().getGuacamoleStatusCode(), e.getWebSocketCode());
             return;
         }
 
@@ -152,7 +151,8 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe
                         }
 
                         // No more data
-                        closeConnection(session, GuacamoleStatus.SUCCESS, null);
+                        closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+                                GuacamoleStatus.SUCCESS.getWebSocketCode());
 
                     }
 
@@ -162,22 +162,26 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe
                     catch (GuacamoleClientException e) {
                         logger.info("WebSocket connection terminated: {}", e.getMessage());
                         logger.debug("WebSocket connection terminated due to client error.", e);
-                        closeConnection(session, e.getStatus(), e.getWebSocketCode());
+                        closeConnection(session, e.getStatus().getGuacamoleStatusCode(),
+                                e.getWebSocketCode());
                     }
                     catch (GuacamoleConnectionClosedException e) {
                         logger.debug("Connection to guacd closed.", e);
-                        closeConnection(session, GuacamoleStatus.SUCCESS, null);
+                        closeConnection(session, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+                                GuacamoleStatus.SUCCESS.getWebSocketCode());
                     }
                     catch (GuacamoleException e) {
                         logger.error("Connection to guacd terminated abnormally: {}", e.getMessage());
                         logger.debug("Internal error during connection to guacd.", e);
-                        closeConnection(session, e.getStatus(), e.getWebSocketCode());
+                        closeConnection(session, e.getStatus().getGuacamoleStatusCode(),
+                                e.getWebSocketCode());
                     }
 
                 }
                 catch (IOException e) {
                     logger.debug("I/O error prevents further reads.", e);
-                    closeConnection(session, GuacamoleStatus.SERVER_ERROR, null);
+                    closeConnection(session, GuacamoleStatus.SERVER_ERROR.getGuacamoleStatusCode(),
+                            GuacamoleStatus.SERVER_ERROR.getWebSocketCode());
                 }
 
             }

http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb1670a8/guacamole/src/main/java/org/apache/guacamole/tunnel/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java
----------------------------------------------------------------------
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 29f6481..4384825 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
@@ -65,13 +65,11 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet {
      * @param guac_status The status to send.
      * @param webSocketCode The numeric WebSocket status code to send.
      */
-    private void closeConnection(WsOutbound outbound, GuacamoleStatus guac_status,
-            Integer webSocketCode) {
+    private void closeConnection(WsOutbound outbound, int guacamoleStatusCode,
+            int webSocketCode) {
 
         try {
-            if (webSocketCode == null)
-                webSocketCode = guac_status.getWebSocketCode();
-            byte[] message = Integer.toString(guac_status.getGuacamoleStatusCode()).getBytes("UTF-8");
+            byte[] message = Integer.toString(guacamoleStatusCode).getBytes("UTF-8");
             outbound.close(webSocketCode, ByteBuffer.wrap(message));
         }
         catch (IOException e) {
@@ -146,13 +144,15 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet {
                 catch (GuacamoleException e) {
                     logger.error("Creation of WebSocket tunnel to guacd failed: {}", e.getMessage());
                     logger.debug("Error connecting WebSocket tunnel.", e);
-                    closeConnection(outbound, e.getStatus(), e.getWebSocketCode());
+                    closeConnection(outbound, e.getStatus().getGuacamoleStatusCode(),
+                            e.getWebSocketCode());
                     return;
                 }
 
                 // Do not start connection if tunnel does not exist
                 if (tunnel == null) {
-                    closeConnection(outbound, GuacamoleStatus.RESOURCE_NOT_FOUND, null);
+                    closeConnection(outbound, GuacamoleStatus.RESOURCE_NOT_FOUND.getGuacamoleStatusCode(),
+                            GuacamoleStatus.RESOURCE_NOT_FOUND.getWebSocketCode());
                     return;
                 }
 
@@ -190,7 +190,8 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet {
                                 }
 
                                 // No more data
-                                closeConnection(outbound, GuacamoleStatus.SUCCESS, null);
+                                closeConnection(outbound, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+                                        GuacamoleStatus.SUCCESS.getWebSocketCode());
 
                             }
 
@@ -200,22 +201,26 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet {
                             catch (GuacamoleClientException e) {
                                 logger.info("WebSocket connection terminated: {}", e.getMessage());
                                 logger.debug("WebSocket connection terminated due to client error.", e);
-                                closeConnection(outbound, e.getStatus(), e.getWebSocketCode());
+                                closeConnection(outbound, e.getStatus().getGuacamoleStatusCode(),
+                                        e.getWebSocketCode());
                             }
                             catch (GuacamoleConnectionClosedException e) {
                                 logger.debug("Connection to guacd closed.", e);
-                                closeConnection(outbound, GuacamoleStatus.SUCCESS, null);
+                                closeConnection(outbound, GuacamoleStatus.SUCCESS.getGuacamoleStatusCode(),
+                                        GuacamoleStatus.SUCCESS.getWebSocketCode());
                             }
                             catch (GuacamoleException e) {
                                 logger.error("Connection to guacd terminated abnormally: {}", e.getMessage());
                                 logger.debug("Internal error during connection to guacd.", e);
-                                closeConnection(outbound, e.getStatus(), e.getWebSocketCode());
+                                closeConnection(outbound, e.getStatus().getGuacamoleStatusCode(),
+                                        e.getWebSocketCode());
                             }
 
                         }
                         catch (IOException e) {
                             logger.debug("I/O error prevents further reads.", e);
-                            closeConnection(outbound, GuacamoleStatus.SERVER_ERROR, null);
+                            closeConnection(outbound, GuacamoleStatus.SERVER_ERROR.getGuacamoleStatusCode(),
+                                    GuacamoleStatus.SERVER_ERROR.getWebSocketCode());
                         }
 
                     }