diff options
Diffstat (limited to 'src/server/net/client.cpp')
-rw-r--r-- | src/server/net/client.cpp | 17 |
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); |