Commit dfa8db8f authored by Joel Martin's avatar Joel Martin

Fix issue #7: security scheme list parsing.

Also, lower connect timeout to 2 seconds.
parent c3785ae1
...@@ -64,7 +64,7 @@ true_color : false, ...@@ -64,7 +64,7 @@ true_color : false,
b64encode : true, // false means UTF-8 on the wire b64encode : true, // false means UTF-8 on the wire
//b64encode : false, // false means UTF-8 on the wire //b64encode : false, // false means UTF-8 on the wire
connectTimeout : 3000, // time to wait for connection connectTimeout : 2000, // time to wait for connection
// In preference order // In preference order
...@@ -306,9 +306,9 @@ mouse_arr : [], ...@@ -306,9 +306,9 @@ mouse_arr : [],
init_msg: function () { init_msg: function () {
//console.log(">> init_msg [RFB.state '" + RFB.state + "']"); //console.log(">> init_msg [RFB.state '" + RFB.state + "']");
var RQ = RFB.RQ, strlen, reason, reason_len, var RQ = RFB.RQ, strlen, reason, reason_len, sversion, cversion,
sversion, cversion, types, num_types, challenge, response, i, types, num_types, challenge, response, bpp, depth,
bpp, depth, big_endian, true_color, name_length; big_endian, true_color, name_length;
//console.log("RQ (" + RQ.length + ") " + RQ); //console.log("RQ (" + RQ.length + ") " + RQ);
switch (RFB.state) { switch (RFB.state) {
...@@ -350,15 +350,19 @@ init_msg: function () { ...@@ -350,15 +350,19 @@ init_msg: function () {
"Disconnected: security failure: " + reason); "Disconnected: security failure: " + reason);
return; return;
} }
RFB.auth_scheme = 0;
types = RQ.shiftBytes(num_types); types = RQ.shiftBytes(num_types);
for (i=0; i < types.length; i+=1) {
RFB.auth_scheme = types[0]; if ((types[i] > RFB.auth_scheme) && (types[i] < 3)) {
if ((RFB.auth_scheme !== 1) && (RFB.auth_scheme !== 2)) { RFB.auth_scheme = types[i];
}
}
if (RFB.auth_scheme === 0) {
RFB.updateState('failed', RFB.updateState('failed',
"Disconnected: invalid security types list: " + types); "Disconnected: unsupported security types: " + types);
return; return;
} }
RFB.send_array([RFB.auth_scheme]); RFB.send_array([RFB.auth_scheme]);
} else { } else {
if (RQ.length < 4) { if (RQ.length < 4) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment