From 3b7e71a4028dde2b2bb6933ef55e3c38f6254a09 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Thu, 12 May 2011 23:41:10 -0700 Subject: [PATCH] Removed connect() from GuacamoleSocket. Added ConfiguredSocket for providing restricted pre-configured (finished with handshake and connect) GuacamoleSockets. --- .../guacamole/GuacamoleProperties.java | 1 - .../guacamole/io/ReaderGuacamoleReader.java | 2 -- .../guacamole/io/WriterGuacamoleWriter.java | 3 -- .../guacamole/net/GuacamoleSocket.java | 4 +-- .../guacamole/net/GuacamoleTunnel.java | 1 - .../guacamole/net/TCPGuacamoleSocket.java | 4 +-- .../ConfiguredSocket.java} | 36 +++++++++++++------ .../servlet/GuacamoleTunnelServlet.java | 2 +- 8 files changed, 29 insertions(+), 24 deletions(-) rename guacamole-common/src/main/java/net/sourceforge/guacamole/{net/AbstractGuacamoleSocket.java => protocol/ConfiguredSocket.java} (73%) diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/GuacamoleProperties.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/GuacamoleProperties.java index d96b1d580..9bf3ebf3b 100644 --- a/guacamole-common/src/main/java/net/sourceforge/guacamole/GuacamoleProperties.java +++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/GuacamoleProperties.java @@ -22,7 +22,6 @@ package net.sourceforge.guacamole; import java.io.IOException; import java.io.InputStream; import java.util.Properties; -import net.sourceforge.guacamole.GuacamoleException; public class GuacamoleProperties { diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/io/ReaderGuacamoleReader.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/io/ReaderGuacamoleReader.java index a99f4055f..8b21d5be9 100644 --- a/guacamole-common/src/main/java/net/sourceforge/guacamole/io/ReaderGuacamoleReader.java +++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/io/ReaderGuacamoleReader.java @@ -3,11 +3,9 @@ package net.sourceforge.guacamole.io; import java.io.IOException; import java.io.Reader; -import java.io.Writer; import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.protocol.GuacamoleInstruction; import net.sourceforge.guacamole.protocol.GuacamoleInstruction.Operation; -import net.sourceforge.guacamole.protocol.Configuration; /* * Guacamole - Clientless Remote Desktop diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/io/WriterGuacamoleWriter.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/io/WriterGuacamoleWriter.java index db6fc849b..a92337e50 100644 --- a/guacamole-common/src/main/java/net/sourceforge/guacamole/io/WriterGuacamoleWriter.java +++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/io/WriterGuacamoleWriter.java @@ -2,12 +2,9 @@ package net.sourceforge.guacamole.io; import java.io.IOException; -import java.io.Reader; import java.io.Writer; import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.protocol.GuacamoleInstruction; -import net.sourceforge.guacamole.protocol.GuacamoleInstruction.Operation; -import net.sourceforge.guacamole.protocol.Configuration; /* * Guacamole - Clientless Remote Desktop diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/GuacamoleSocket.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/net/GuacamoleSocket.java index 8edb44b6e..2ad5af5a4 100644 --- a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/GuacamoleSocket.java +++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/net/GuacamoleSocket.java @@ -1,7 +1,6 @@ package net.sourceforge.guacamole.net; -import net.sourceforge.guacamole.protocol.Configuration; import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.io.GuacamoleReader; import net.sourceforge.guacamole.io.GuacamoleWriter; @@ -29,7 +28,6 @@ public interface GuacamoleSocket { public GuacamoleReader getReader(); public GuacamoleWriter getWriter(); - public void connect(Configuration config) throws GuacamoleException; - public void disconnect() throws GuacamoleException; + public void close() throws GuacamoleException; } diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/GuacamoleTunnel.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/net/GuacamoleTunnel.java index 3d586ff41..f03492e7c 100644 --- a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/GuacamoleTunnel.java +++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/net/GuacamoleTunnel.java @@ -23,7 +23,6 @@ import java.util.UUID; import java.util.concurrent.locks.ReentrantLock; import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.io.GuacamoleReader; -import net.sourceforge.guacamole.net.GuacamoleSocket; import net.sourceforge.guacamole.io.GuacamoleWriter; public class GuacamoleTunnel { diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/TCPGuacamoleSocket.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/net/TCPGuacamoleSocket.java index 15feafb34..cf21e0f6d 100644 --- a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/TCPGuacamoleSocket.java +++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/net/TCPGuacamoleSocket.java @@ -35,7 +35,7 @@ import java.net.SocketAddress; import net.sourceforge.guacamole.GuacamoleException; -public class TCPGuacamoleSocket extends AbstractGuacamoleSocket { +public class TCPGuacamoleSocket implements GuacamoleSocket { private GuacamoleReader reader; private GuacamoleWriter writer; @@ -72,7 +72,7 @@ public class TCPGuacamoleSocket extends AbstractGuacamoleSocket { } @Override - public void disconnect() throws GuacamoleException { + public void close() throws GuacamoleException { try { sock.close(); } diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/AbstractGuacamoleSocket.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/protocol/ConfiguredSocket.java similarity index 73% rename from guacamole-common/src/main/java/net/sourceforge/guacamole/net/AbstractGuacamoleSocket.java rename to guacamole-common/src/main/java/net/sourceforge/guacamole/protocol/ConfiguredSocket.java index 3d999ce06..594c20f8d 100644 --- a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/AbstractGuacamoleSocket.java +++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/protocol/ConfiguredSocket.java @@ -1,15 +1,11 @@ -package net.sourceforge.guacamole.net; +package net.sourceforge.guacamole.protocol; import net.sourceforge.guacamole.io.GuacamoleReader; import net.sourceforge.guacamole.io.GuacamoleWriter; -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; import net.sourceforge.guacamole.GuacamoleException; -import net.sourceforge.guacamole.protocol.GuacamoleInstruction; +import net.sourceforge.guacamole.net.GuacamoleSocket; import net.sourceforge.guacamole.protocol.GuacamoleInstruction.Operation; -import net.sourceforge.guacamole.protocol.Configuration; /* * Guacamole - Clientless Remote Desktop @@ -29,14 +25,17 @@ import net.sourceforge.guacamole.protocol.Configuration; * along with this program. If not, see . */ -public abstract class AbstractGuacamoleSocket implements GuacamoleSocket { +public class ConfiguredSocket implements GuacamoleSocket { - @Override - public void connect(Configuration config) throws GuacamoleException { + private GuacamoleSocket socket; + + public ConfiguredSocket(GuacamoleSocket socket, Configuration config) throws GuacamoleException { + + this.socket = socket; // Get reader and writer - GuacamoleReader reader = getReader(); - GuacamoleWriter writer = getWriter(); + GuacamoleReader reader = socket.getReader(); + GuacamoleWriter writer = socket.getWriter(); // Send protocol writer.writeInstruction(new GuacamoleInstruction(Operation.CLIENT_SELECT, config.getProtocol())); @@ -66,4 +65,19 @@ public abstract class AbstractGuacamoleSocket implements GuacamoleSocket { } + @Override + public GuacamoleWriter getWriter() { + return socket.getWriter(); + } + + @Override + public GuacamoleReader getReader() { + return socket.getReader(); + } + + @Override + public void close() throws GuacamoleException { + socket.close(); + } + } diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleTunnelServlet.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleTunnelServlet.java index 7848b2431..27106b9b8 100644 --- a/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleTunnelServlet.java +++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleTunnelServlet.java @@ -31,7 +31,6 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.io.GuacamoleReader; -import net.sourceforge.guacamole.net.GuacamoleSocket; import net.sourceforge.guacamole.io.GuacamoleWriter; @@ -47,6 +46,7 @@ public abstract class GuacamoleTunnelServlet extends HttpServlet { service(request, response); } + @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException { try {