summaryrefslogtreecommitdiffstats
path: root/src/server/net/client.cpp
diff options
context:
space:
mode:
authorsr2013-02-05 17:28:19 +0100
committersr2013-02-05 17:28:19 +0100
commit6f4fb557610beccb225a6bf3d46c0118b221bd99 (patch)
treefb2c7cb6cd7b09294fa3ca5cb7eef902bddac0e7 /src/server/net/client.cpp
parent... (diff)
downloadpvs2-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.cpp26
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)