Error handling, added data submission for connect.

This commit is contained in:
Michael Jumper
2011-04-08 22:41:31 -07:00
parent 92d68a3987
commit 0eb351e467
2 changed files with 23 additions and 5 deletions

View File

@@ -429,12 +429,19 @@ function GuacamoleClient(display, tunnel) {
}
this.disconnect = disconnect;
this.connect = function() {
this.connect = function(data) {
setState(STATE_CONNECTING);
tunnel.connect();
setState(STATE_WAITING);
try {
tunnel.connect(data);
}
catch (e) {
setState(STATE_IDLE);
throw e;
}
setState(STATE_WAITING);
};
this.escapeGuacamoleString = escapeGuacamoleString;

View File

@@ -213,13 +213,24 @@ function GuacamoleHTTPTunnel(tunnelURL) {
}
function connect() {
function connect(data) {
// Start tunnel and connect synchronously
var connect_xmlhttprequest = new XMLHttpRequest();
connect_xmlhttprequest.open("POST", TUNNEL_CONNECT, false);
connect_xmlhttprequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
connect_xmlhttprequest.send(null);
connect_xmlhttprequest.send(data);
// If failure, throw error
if (connect_xmlhttprequest.status != 200) {
var message = connect_xmlhttprequest.getResponseHeader("X-Guacamole-Error-Message");
if (!message)
message = "Internal error";
throw new Error(message);
}
// Get UUID from response
tunnel_uuid = connect_xmlhttprequest.responseText;