Removed connect() from GuacamoleSocket. Added ConfiguredSocket for providing restricted pre-configured (finished with handshake and connect) GuacamoleSockets.

This commit is contained in:
Michael Jumper
2011-05-12 23:41:10 -07:00
parent 11b29d8709
commit 3b7e71a402
8 changed files with 29 additions and 24 deletions

View File

@@ -22,7 +22,6 @@ package net.sourceforge.guacamole;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.Properties; import java.util.Properties;
import net.sourceforge.guacamole.GuacamoleException;
public class GuacamoleProperties { public class GuacamoleProperties {

View File

@@ -3,11 +3,9 @@ package net.sourceforge.guacamole.io;
import java.io.IOException; import java.io.IOException;
import java.io.Reader; import java.io.Reader;
import java.io.Writer;
import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.protocol.GuacamoleInstruction; import net.sourceforge.guacamole.protocol.GuacamoleInstruction;
import net.sourceforge.guacamole.protocol.GuacamoleInstruction.Operation; import net.sourceforge.guacamole.protocol.GuacamoleInstruction.Operation;
import net.sourceforge.guacamole.protocol.Configuration;
/* /*
* Guacamole - Clientless Remote Desktop * Guacamole - Clientless Remote Desktop

View File

@@ -2,12 +2,9 @@
package net.sourceforge.guacamole.io; package net.sourceforge.guacamole.io;
import java.io.IOException; import java.io.IOException;
import java.io.Reader;
import java.io.Writer; import java.io.Writer;
import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.protocol.GuacamoleInstruction; import net.sourceforge.guacamole.protocol.GuacamoleInstruction;
import net.sourceforge.guacamole.protocol.GuacamoleInstruction.Operation;
import net.sourceforge.guacamole.protocol.Configuration;
/* /*
* Guacamole - Clientless Remote Desktop * Guacamole - Clientless Remote Desktop

View File

@@ -1,7 +1,6 @@
package net.sourceforge.guacamole.net; package net.sourceforge.guacamole.net;
import net.sourceforge.guacamole.protocol.Configuration;
import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.io.GuacamoleReader; import net.sourceforge.guacamole.io.GuacamoleReader;
import net.sourceforge.guacamole.io.GuacamoleWriter; import net.sourceforge.guacamole.io.GuacamoleWriter;
@@ -29,7 +28,6 @@ public interface GuacamoleSocket {
public GuacamoleReader getReader(); public GuacamoleReader getReader();
public GuacamoleWriter getWriter(); public GuacamoleWriter getWriter();
public void connect(Configuration config) throws GuacamoleException; public void close() throws GuacamoleException;
public void disconnect() throws GuacamoleException;
} }

View File

@@ -23,7 +23,6 @@ import java.util.UUID;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.io.GuacamoleReader; import net.sourceforge.guacamole.io.GuacamoleReader;
import net.sourceforge.guacamole.net.GuacamoleSocket;
import net.sourceforge.guacamole.io.GuacamoleWriter; import net.sourceforge.guacamole.io.GuacamoleWriter;
public class GuacamoleTunnel { public class GuacamoleTunnel {

View File

@@ -35,7 +35,7 @@ import java.net.SocketAddress;
import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.GuacamoleException;
public class TCPGuacamoleSocket extends AbstractGuacamoleSocket { public class TCPGuacamoleSocket implements GuacamoleSocket {
private GuacamoleReader reader; private GuacamoleReader reader;
private GuacamoleWriter writer; private GuacamoleWriter writer;
@@ -72,7 +72,7 @@ public class TCPGuacamoleSocket extends AbstractGuacamoleSocket {
} }
@Override @Override
public void disconnect() throws GuacamoleException { public void close() throws GuacamoleException {
try { try {
sock.close(); sock.close();
} }

View File

@@ -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.GuacamoleReader;
import net.sourceforge.guacamole.io.GuacamoleWriter; 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.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.GuacamoleInstruction.Operation;
import net.sourceforge.guacamole.protocol.Configuration;
/* /*
* Guacamole - Clientless Remote Desktop * Guacamole - Clientless Remote Desktop
@@ -29,14 +25,17 @@ import net.sourceforge.guacamole.protocol.Configuration;
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
public abstract class AbstractGuacamoleSocket implements GuacamoleSocket { public class ConfiguredSocket implements GuacamoleSocket {
@Override private GuacamoleSocket socket;
public void connect(Configuration config) throws GuacamoleException {
public ConfiguredSocket(GuacamoleSocket socket, Configuration config) throws GuacamoleException {
this.socket = socket;
// Get reader and writer // Get reader and writer
GuacamoleReader reader = getReader(); GuacamoleReader reader = socket.getReader();
GuacamoleWriter writer = getWriter(); GuacamoleWriter writer = socket.getWriter();
// Send protocol // Send protocol
writer.writeInstruction(new GuacamoleInstruction(Operation.CLIENT_SELECT, config.getProtocol())); 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();
}
} }

View File

@@ -31,7 +31,6 @@ import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import net.sourceforge.guacamole.GuacamoleException; import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.io.GuacamoleReader; import net.sourceforge.guacamole.io.GuacamoleReader;
import net.sourceforge.guacamole.net.GuacamoleSocket;
import net.sourceforge.guacamole.io.GuacamoleWriter; import net.sourceforge.guacamole.io.GuacamoleWriter;
@@ -47,6 +46,7 @@ public abstract class GuacamoleTunnelServlet extends HttpServlet {
service(request, response); service(request, response);
} }
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException {
try { try {