Fix issue #7: security scheme list parsing.
Also, lower connect timeout to 2 seconds.
This commit is contained in:
parent
c3785ae12b
commit
dfa8db8f38
|
@ -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 : [],
|
||||||
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 () {
|
||||||
"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) {
|
||||||
|
|
Loading…
Reference in New Issue