No session creation in InstructionStream, made connect syncronous to avoid current session race

This commit is contained in:
Michael Jumper
2010-09-19 01:19:58 -07:00
parent e709beb144
commit f11fddaaa1
2 changed files with 11 additions and 10 deletions

View File

@@ -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();

View File

@@ -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());