Expect security result for RFB 3.7

The cut off was wrong here. 3.7 will send a security result, but not a
security reason. It also fixes the issue that < 3.7 (e.g. 3.3) supports
VNC authentication as well.
This commit is contained in:
Pierre Ossman
2022-08-18 14:33:48 +02:00
parent 084030fe68
commit 5671072dfe
2 changed files with 14 additions and 11 deletions

View File

@@ -1835,11 +1835,7 @@ export default class RFB extends EventTargetMixin {
_negotiateAuthentication() {
switch (this._rfbAuthScheme) {
case 1: // no auth
if (this._rfbVersion >= 3.8) {
this._rfbInitState = 'SecurityResult';
return true;
}
this._rfbInitState = 'ClientInitialisation';
this._rfbInitState = 'SecurityResult';
return true;
case 22: // XVP auth
@@ -1870,6 +1866,13 @@ export default class RFB extends EventTargetMixin {
}
_handleSecurityResult() {
// There is no security choice, and hence no security result
// until RFB 3.7
if (this._rfbVersion < 3.7) {
this._rfbInitState = 'ClientInitialisation';
return true;
}
if (this._sock.rQwait('VNC auth response ', 4)) { return false; }
const status = this._sock.rQshift32();