summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ClientInfo.hpp1
-rw-r--r--src/crsm.cpp27
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)