summaryrefslogtreecommitdiffstats
path: root/src/crsm.cpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2016-12-29 16:51:55 +0100
committerMarkus Mittendrein <git@maxmitti.tk>2016-12-29 16:51:55 +0100
commitae2cb3ebd3357c0146b0a3e0e6f1b0539dd83763 (patch)
tree534f02b0b22a592a2836a86f36f5d660b25e3849 /src/crsm.cpp
parent16c73e6e25b5457789e27b9f7f21e981054ed43d (diff)
downloadmanager-ae2cb3ebd3357c0146b0a3e0e6f1b0539dd83763.tar.gz
manager-ae2cb3ebd3357c0146b0a3e0e6f1b0539dd83763.zip
Add management scripting support
Management Clients with a name starting with ! dont get any buffer replay or normal log output and dont create buffer holes anymore
Diffstat (limited to 'src/crsm.cpp')
-rw-r--r--src/crsm.cpp27
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)