diff --git a/guacamole/client/src/net/sourceforge/guacamole/net/output/InstructionStream.java b/guacamole/client/src/net/sourceforge/guacamole/net/output/InstructionStream.java index bba89540c..33237d44a 100644 --- a/guacamole/client/src/net/sourceforge/guacamole/net/output/InstructionStream.java +++ b/guacamole/client/src/net/sourceforge/guacamole/net/output/InstructionStream.java @@ -32,16 +32,9 @@ import net.sourceforge.guacamole.net.GuacamoleSession; public class InstructionStream extends GuacamoleServlet { - protected boolean shouldCreateSession() { - return true; - } - @Override protected void handleRequest(GuacamoleSession session, HttpServletRequest request, HttpServletResponse response) throws GuacamoleException { - if (!session.isConnected()) - session.connect(); - ReentrantLock instructionStreamLock = session.getInstructionStreamLock(); instructionStreamLock.lock(); diff --git a/guacamole/client/web/javascript/guacamole.js b/guacamole/client/web/javascript/guacamole.js index 7f0c70345..d0f6e6cf7 100644 --- a/guacamole/client/web/javascript/guacamole.js +++ b/guacamole/client/web/javascript/guacamole.js @@ -559,10 +559,18 @@ function VNCClient(display) { this.connect = function() { - // Attempt connection - setState(STATE_CONNECTING); - sendMessage("connect;"); // Start new guacamole session + var message = "connect;"; + setState(STATE_CONNECTING); + + // Send connect message (synchronously... as necessary until handoff is implemented) + var connect_xmlhttprequest = new XMLHttpRequest(); + connect_xmlhttprequest.open("POST", "inbound", false); + connect_xmlhttprequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + connect_xmlhttprequest.setRequestHeader("Content-length", message.length); + connect_xmlhttprequest.send(message); + + // Start reading data setState(STATE_WAITING); handleResponse(makeRequest());