summaryrefslogtreecommitdiffstats
path: root/src/server/net/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/net/client.cpp')
-rw-r--r--src/server/net/client.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/server/net/client.cpp b/src/server/net/client.cpp
index 135157c..584b254 100644
--- a/src/server/net/client.cpp
+++ b/src/server/net/client.cpp
@@ -11,6 +11,7 @@
#include "../../shared/util.h"
#include <QPixmap>
#include <cassert>
+#include <QNetworkInterface>
#define CHALLENGE_LEN 20
@@ -310,10 +311,24 @@ void Client::stopVncClient()
}
}
+/***************************************************************************//**
+ * Checks if client and manager runs on same machine.
+ * @return Return true, if pvsmanager is running on client.
+ */
+bool Client::isManagerMachine()
+{
+ foreach (const QHostAddress &address, QNetworkInterface::allAddresses())
+ if (address != QHostAddress(QHostAddress::LocalHost)
+ && this != NULL
+ && this->ip() == address.toString())
+ return true;
+ return false;
+}
+
/******************************************************************************/
void Client::lockScreen(bool lock)
{
- if (!_isTutor && _locked != lock){
+ if (!_isTutor && _locked != lock && !isManagerMachine()){
_locked = lock;
NetworkMessage msg;
msg.setField(_ID, _LOCK);