/***************************************************************************
- * Copyright (C) 2005-2013 by the Quassel Project *
+ * Copyright (C) 2005-2015 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "coreirclisthelper.h"
#include "corenetwork.h"
#include "coresession.h"
+#include "coretransfer.h"
#include "coretransfermanager.h"
#include "ctcpevent.h"
#include "ircevent.h"
#include "ircuser.h"
+#include "logger.h"
#include "messageevent.h"
#include "netsplit.h"
#include "quassel.h"
-#include "transfer.h"
#ifdef HAVE_QCA2
# include "keyevent.h"
construct.append(net->saslAccount());
construct.append(QChar(QChar::Null));
construct.append(net->saslPassword());
- QByteArray saslData = QByteArray(construct.toAscii().toBase64());
+ QByteArray saslData = QByteArray(construct.toLatin1().toBase64());
saslData.prepend("AUTHENTICATE ");
net->putRawLine(saslData);
#ifdef HAVE_SSL
/* RPL_WELCOME */
-void CoreSessionEventProcessor::processIrcEvent001(IrcEvent *e)
+void CoreSessionEventProcessor::processIrcEvent001(IrcEventNumeric *e)
{
- if (!checkParamCount(e, 1))
- return;
-
- QString myhostmask = e->params().at(0).section(' ', -1, -1);
e->network()->setCurrentServer(e->prefix());
- e->network()->setMyNick(nickFromMask(myhostmask));
+ e->network()->setMyNick(e->target());
}
// 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(' ');
}
// TODO: check if target is the right thing to use for the partner
- Transfer *transfer = new Transfer(Transfer::Receive, e->target(), filename, address, port, size, this);
+ CoreTransfer *transfer = new CoreTransfer(Transfer::Receive, e->target(), filename, address, port, size, this);
coreSession()->signalProxy()->synchronize(transfer);
coreSession()->transferManager()->addTransfer(transfer);
}