From 2a85d71df40746ae1c8c674d83edad53356cc2a2 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Wed, 7 Sep 2016 20:57:19 +0200 Subject: Automatically disconnect assigned DCC connection on dcc connect --- src/crsm.cpp | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) (limited to 'src/crsm.cpp') diff --git a/src/crsm.cpp b/src/crsm.cpp index 2e14319..05d30ae 100644 --- a/src/crsm.cpp +++ b/src/crsm.cpp @@ -617,40 +617,37 @@ void CRSM::dccChatRequest(const ClientInfo &client, QString extraArgs) { if(dccNickConnections.contains(client.nick)) { - respond(client, "Diesem Nick ist bereits eine DCC-Verbindung zugewiesen.\n"); - } - else - { - QHostInfo info = QHostInfo::fromName(Config.DCC.Address); - connection->sendCommand(IrcCommand::createCtcpRequest(client.nick, "DCC CHAT chat " + QString::number(info.addresses().first().toIPv4Address()) + " " + QString::number(Config.DCC.ListenPort) + (!extraArgs.isEmpty() ? " " + extraArgs: extraArgs))); + QTimer::singleShot(0, dccNickConnections[client.nick].socket, &QTcpSocket::close); } + + QHostInfo info = QHostInfo::fromName(Config.DCC.Address); + connection->sendCommand(IrcCommand::createCtcpRequest(client.nick, "DCC CHAT chat " + QString::number(info.addresses().first().toIPv4Address()) + " " + QString::number(Config.DCC.ListenPort) + (!extraArgs.isEmpty() ? " " + extraArgs: extraArgs))); } // modified version of http://stackoverflow.com/a/18866593 QString GetRandomString(int length = 5) { - static const QString possibleCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); + static const QString possibleCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); - QString randomString; - for(int i=0; ireadLine()); - if(message.endsWith('\n')) + QString message = QString::fromUtf8(socket->readLine()).trimmed(); + if(message.length() > 0) { - message.chop(1); + handleIrcMessage(dccConnection.client, message, connection->nickName(), true, false); } - handleIrcMessage(dccConnection.client, message, connection->nickName(), true, false); } void CRSM::newDCCConnection() -- cgit v1.2.3-54-g00ecf