diff options
| -rw-r--r-- | src/ClientInfo.hpp | 1 | ||||
| -rw-r--r-- | src/crsm.cpp | 27 |
2 files changed, 21 insertions, 7 deletions
diff --git a/src/ClientInfo.hpp b/src/ClientInfo.hpp index d176965..57d2587 100644 --- a/src/ClientInfo.hpp +++ b/src/ClientInfo.hpp @@ -15,6 +15,7 @@ public: QTcpSocket* socket = 0; QString name = ""; + bool noLogging = false; }; class ClientInfo diff --git a/src/crsm.cpp b/src/crsm.cpp index 06ec498..e65aeb2 100644 --- a/src/crsm.cpp +++ b/src/crsm.cpp @@ -570,9 +570,18 @@ void CRSM::newManagementData() ManagementConnection conn; conn.socket = sock; conn.name = data; + + if(conn.name.length() > 1 && conn.name.at(0) == '!') + { + conn.noLogging = true; + } + out(conn.name + " logged in on Management-Interface.\n"); managementConnections.insert(sock, conn); - replayOutputBuffer(sock); + if(!conn.noLogging) + { + replayOutputBuffer(sock); + } } } else @@ -1673,17 +1682,21 @@ void CRSM::out(const QString &text) return; } Log.log(text); - if(managementConnections.size() == 0) - { - outputBuffer.write(text.toUtf8()); - } - else + bool buffer = true; + + foreach(const ManagementConnection& conn, managementConnections) { - foreach(const ManagementConnection& conn, managementConnections) + if(!conn.noLogging) { conn.socket->write(text.toUtf8()); + buffer = false; } } + + if(buffer) + { + outputBuffer.write(text.toUtf8()); + } } void CRSM::replayOutputBuffer(QTcpSocket *socket, bool clear) |
