As support for DCC is unfinished, untested and potentially dangerous
(i.e. one could spam your desktop with millions of dialog boxes), disable
it by default.
People really wanting to play around with this may start the core
with --enable-experimental-dcc, but you have been warned.
#ifdef HAVE_SSL
cliParser->addSwitch("require-ssl", 0, "Require SSL for client connections");
#endif
#ifdef HAVE_SSL
cliParser->addSwitch("require-ssl", 0, "Require SSL for client connections");
#endif
+ cliParser->addSwitch("enable-experimental-dcc", 0, "Enable highly experimental and unfinished support for CTCP DCC (DANGEROUS)");
#include "ctcpevent.h"
#include "ircevent.h"
#include "ircuser.h"
#include "ctcpevent.h"
#include "ircevent.h"
#include "ircuser.h"
#include "messageevent.h"
#include "netsplit.h"
#include "quassel.h"
#include "messageevent.h"
#include "netsplit.h"
#include "quassel.h"
// http://en.wikipedia.org/wiki/Direct_Client-to-Client
void CoreSessionEventProcessor::handleCtcpDcc(CtcpEvent *e)
{
// http://en.wikipedia.org/wiki/Direct_Client-to-Client
void CoreSessionEventProcessor::handleCtcpDcc(CtcpEvent *e)
{
+ // DCC support is unfinished, experimental and potentially dangerous, so make it opt-in
+ if (!Quassel::isOptionSet("enable-experimental-dcc")) {
+ quInfo() << "DCC disabled, start core with --enable-experimental-dcc if you really want to try it out";
+ return;
+ }
+
// normal: SEND <filename> <ip> <port> [<filesize>]
// reverse: SEND <filename> <ip> 0 <filesize> <token>
QStringList params = e->param().split(' ');
// normal: SEND <filename> <ip> <port> [<filesize>]
// reverse: SEND <filename> <ip> 0 <filesize> <token>
QStringList params = e->param().split(' ');