diff options
Diffstat (limited to 'src/crsm.cpp')
| -rw-r--r-- | src/crsm.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
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) |
