mirror of
https://github.com/openstf/stf
synced 2025-10-05 10:39:25 +02:00
Consume ClientCutText's value.
This commit is contained in:
parent
66182666bd
commit
6d84064e6b
1 changed files with 15 additions and 5 deletions
|
@ -56,6 +56,7 @@ function VncConnection(conn) {
|
||||||
this._clientPixelFormat = this._serverPixelFormat
|
this._clientPixelFormat = this._serverPixelFormat
|
||||||
this._clientEncodingCount = 0
|
this._clientEncodingCount = 0
|
||||||
this._clientEncodings = []
|
this._clientEncodings = []
|
||||||
|
this._clientCutTextLength = 0
|
||||||
|
|
||||||
this.conn = conn
|
this.conn = conn
|
||||||
.on('readable', this._bound._readableListener)
|
.on('readable', this._bound._readableListener)
|
||||||
|
@ -90,11 +91,12 @@ var StateReverse = Object.create(null), State = {
|
||||||
, STATE_NEED_CLIENT_MESSAGE: 40
|
, STATE_NEED_CLIENT_MESSAGE: 40
|
||||||
, STATE_NEED_CLIENT_MESSAGE_SETPIXELFORMAT: 50
|
, STATE_NEED_CLIENT_MESSAGE_SETPIXELFORMAT: 50
|
||||||
, STATE_NEED_CLIENT_MESSAGE_SETENCODINGS: 60
|
, STATE_NEED_CLIENT_MESSAGE_SETENCODINGS: 60
|
||||||
, STATE_NEED_CLIENT_MESSAGE_SETENCODINGS_ARRAY: 61
|
, STATE_NEED_CLIENT_MESSAGE_SETENCODINGS_VALUE: 61
|
||||||
, STATE_NEED_CLIENT_MESSAGE_FBUPDATEREQUEST: 70
|
, STATE_NEED_CLIENT_MESSAGE_FBUPDATEREQUEST: 70
|
||||||
, STATE_NEED_CLIENT_MESSAGE_KEYEVENT: 80
|
, STATE_NEED_CLIENT_MESSAGE_KEYEVENT: 80
|
||||||
, STATE_NEED_CLIENT_MESSAGE_POINTEREVENT: 90
|
, STATE_NEED_CLIENT_MESSAGE_POINTEREVENT: 90
|
||||||
, STATE_NEED_CLIENT_MESSAGE_CLIENTCUTTEXT: 100
|
, STATE_NEED_CLIENT_MESSAGE_CLIENTCUTTEXT: 100
|
||||||
|
, STATE_NEED_CLIENT_MESSAGE_CLIENTCUTTEXT_VALUE: 101
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.keys(State).map(function(name) {
|
Object.keys(State).map(function(name) {
|
||||||
|
@ -258,10 +260,10 @@ VncConnection.prototype._read = function() {
|
||||||
if ((chunk = this._consume(3))) {
|
if ((chunk = this._consume(3))) {
|
||||||
// [0b, 1b) padding
|
// [0b, 1b) padding
|
||||||
this._clientEncodingCount = chunk.readUInt16BE(1, true)
|
this._clientEncodingCount = chunk.readUInt16BE(1, true)
|
||||||
this._changeState(VncConnection.STATE_NEED_CLIENT_MESSAGE_SETENCODINGS_ARRAY)
|
this._changeState(VncConnection.STATE_NEED_CLIENT_MESSAGE_SETENCODINGS_VALUE)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case VncConnection.STATE_NEED_CLIENT_MESSAGE_SETENCODINGS_ARRAY:
|
case VncConnection.STATE_NEED_CLIENT_MESSAGE_SETENCODINGS_VALUE:
|
||||||
lo = 0
|
lo = 0
|
||||||
hi = 4 * this._clientEncodingCount
|
hi = 4 * this._clientEncodingCount
|
||||||
if ((chunk = this._consume(hi))) {
|
if ((chunk = this._consume(hi))) {
|
||||||
|
@ -303,10 +305,18 @@ VncConnection.prototype._read = function() {
|
||||||
case VncConnection.STATE_NEED_CLIENT_MESSAGE_CLIENTCUTTEXT:
|
case VncConnection.STATE_NEED_CLIENT_MESSAGE_CLIENTCUTTEXT:
|
||||||
if ((chunk = this._consume(7))) {
|
if ((chunk = this._consume(7))) {
|
||||||
// [0b, 3b) padding
|
// [0b, 3b) padding
|
||||||
// length = chunk.readUInt32BE(3)
|
this._clientCutTextLength = chunk.readUInt32BE(3)
|
||||||
this._changeState(VncConnection.STATE_NEED_CLIENT_MESSAGE_CLIENTCUTTEXT_VALUE)
|
this._changeState(VncConnection.STATE_NEED_CLIENT_MESSAGE_CLIENTCUTTEXT_STRING)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
case VncConnection.STATE_NEED_CLIENT_MESSAGE_CLIENTCUTTEXT_VALUE:
|
||||||
|
if ((chunk = this._consume(this._clientCutTextLength))) {
|
||||||
|
// value = chunk
|
||||||
|
this._changeState(VncConnection.STATE_NEED_CLIENT_MESSAGE)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
throw new Error(util.format('Impossible state %d', this._state))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (chunk)
|
while (chunk)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue