diff options
author | sr | 2013-02-05 17:28:19 +0100 |
---|---|---|
committer | sr | 2013-02-05 17:28:19 +0100 |
commit | 6f4fb557610beccb225a6bf3d46c0118b221bd99 (patch) | |
tree | fb2c7cb6cd7b09294fa3ca5cb7eef902bddac0e7 /src/server/net/client.cpp | |
parent | ... (diff) | |
download | pvs2-6f4fb557610beccb225a6bf3d46c0118b221bd99.tar.gz pvs2-6f4fb557610beccb225a6bf3d46c0118b221bd99.tar.xz pvs2-6f4fb557610beccb225a6bf3d46c0118b221bd99.zip |
[SERVER] Implement all four VNC projection modes
Diffstat (limited to 'src/server/net/client.cpp')
-rw-r--r-- | src/server/net/client.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/server/net/client.cpp b/src/server/net/client.cpp index ca91e76..e2ea933 100644 --- a/src/server/net/client.cpp +++ b/src/server/net/client.cpp @@ -20,7 +20,7 @@ ClientId Client::_clientIdCounter = 0; Client::Client(QSslSocket* socket) : _socket(socket), _authed(0), _desiredProjectionSource(0), _isProjectionSource(false), - _currentProjectionSource(0), _vncPort(0), _activeVncClient(false) + _currentProjectionSource(0), _vncPort(0), _activeVncClient(false), _isTutor(false) { assert(socket != NULL); _id = ++_clientIdCounter; @@ -197,7 +197,8 @@ void Client::handleMsg() return; } - if (_authed == 1) // Not authed yet, only care about login requests + // Not authed yet, only care about login requests + if (_authed == 1) { if (id == _LOGIN) { @@ -230,6 +231,7 @@ void Client::handleMsg() return; } + // Did not pass challenge yet if (_authed == 0) { // Waiting for challenge reply by client @@ -262,7 +264,7 @@ void Client::startVncServer() _vncPort = 0; _toClient.reset(); _toClient.setField(_ID, _VNCSERVER); - _toClient.setField("ENABLE", QByteArray("1")); + _toClient.setField(_ENABLE, __FALSE); sendMessage(_toClient); } @@ -270,10 +272,26 @@ void Client::stopVncServer() { _toClient.reset(); _toClient.setField(_ID, _VNCSERVER); - _toClient.setField("ENABLE", QByteArray("0")); + _toClient.setField(_ENABLE, __FALSE); sendMessage(_toClient); } +void Client::stopVncClient() +{ + _toClient.reset(); + _toClient.setField(_ID, _VNCCLIENT); + sendMessage(_toClient); +} + +void Client::setTutor(bool enable) +{ + _toClient.reset(); + _toClient.setField(_ID, _TUTOR); + _toClient.setField(_ENABLE, _BOOL(enable)); + sendMessage(_toClient); + _isTutor = enable; +} + void Client::disconnect() { if (_socket != NULL) |