summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/crsm.cpp13
-rw-r--r--src/crsm.hpp1
2 files changed, 14 insertions, 0 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index 601d3b1..2e14319 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -1499,6 +1499,7 @@ void CRSM::setupCmds()
{
addCommandGroup("dcc", IRC, User, "Die dcc-Befehlsgruppe bietet die Möglichkeit zum Steuern eines DCC-Chats.");
addCommand("dcc connect", &CRSM::dccConnect, IRC, User, "Sendet eine DCC-Chat-Verbindungsanfrage.");
+ addCommand("dcc disconnect", &CRSM::dccDisconnect, IRC, User, "Schließt die zum Nick zugewiesene DCC-Verbindung, falls vorhanden.");
addCommand("dcc identify", &CRSM::dccIdentify, IRC, User, "Mit dem Befehl wird eine neu geöffnete DCC-Verbindung einem Benutzer zugewiesen.", "<Verbindungs-ID>");
}
}
@@ -3309,6 +3310,18 @@ CMD_FUNCTION_IMPL(dccConnect)
return Success;
}
+CMD_FUNCTION_IMPL(dccDisconnect)
+ if(dccNickConnections.contains(client.nick))
+ {
+ QTimer::singleShot(0, dccNickConnections[client.nick].socket, &QTcpSocket::close);
+ }
+ else
+ {
+ respond(client, "Diesem Nick ist keine DCC-Verbindung zugewiesen.\n");
+ }
+ return Success;
+}
+
CMD_FUNCTION_IMPL(dccIdentify)
if(dccNickConnections.contains(client.nick))
{
diff --git a/src/crsm.hpp b/src/crsm.hpp
index 27da66c..8fc8798 100644
--- a/src/crsm.hpp
+++ b/src/crsm.hpp
@@ -378,6 +378,7 @@ private:
CMD_FUNCTION(packsScenariosList);
CMD_FUNCTION(dccConnect);
+ CMD_FUNCTION(dccDisconnect);
CMD_FUNCTION(dccIdentify);