mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 05:07:41 +00:00
No session creation in InstructionStream, made connect syncronous to avoid current session race
This commit is contained in:
@@ -32,16 +32,9 @@ import net.sourceforge.guacamole.net.GuacamoleSession;
|
|||||||
|
|
||||||
public class InstructionStream extends GuacamoleServlet {
|
public class InstructionStream extends GuacamoleServlet {
|
||||||
|
|
||||||
protected boolean shouldCreateSession() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleRequest(GuacamoleSession session, HttpServletRequest request, HttpServletResponse response) throws GuacamoleException {
|
protected void handleRequest(GuacamoleSession session, HttpServletRequest request, HttpServletResponse response) throws GuacamoleException {
|
||||||
|
|
||||||
if (!session.isConnected())
|
|
||||||
session.connect();
|
|
||||||
|
|
||||||
ReentrantLock instructionStreamLock = session.getInstructionStreamLock();
|
ReentrantLock instructionStreamLock = session.getInstructionStreamLock();
|
||||||
instructionStreamLock.lock();
|
instructionStreamLock.lock();
|
||||||
|
|
||||||
|
@@ -559,10 +559,18 @@ function VNCClient(display) {
|
|||||||
|
|
||||||
this.connect = function() {
|
this.connect = function() {
|
||||||
|
|
||||||
// Attempt connection
|
var message = "connect;";
|
||||||
setState(STATE_CONNECTING);
|
|
||||||
sendMessage("connect;"); // Start new guacamole session
|
|
||||||
|
|
||||||
|
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);
|
setState(STATE_WAITING);
|
||||||
handleResponse(makeRequest());
|
handleResponse(makeRequest());
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user