X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcoresessioneventprocessor.cpp;h=b33c4b0998121da972c48bf5a580de885a6d4bc1;hb=3b8318c1ec0b20f4f04a4fa9f3d9c18c8301ca41;hp=f8c5e344840e27b2b9fde3e669e3bbf0f6d4acd1;hpb=91a0c4e08ea7da4264245de2b41f40f11846c2c4;p=quassel.git diff --git a/src/core/coresessioneventprocessor.cpp b/src/core/coresessioneventprocessor.cpp index f8c5e344..b33c4b09 100644 --- a/src/core/coresessioneventprocessor.cpp +++ b/src/core/coresessioneventprocessor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 by the Quassel Project * + * Copyright (C) 2005-2014 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,12 +23,9 @@ #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" @@ -480,14 +477,10 @@ void CoreSessionEventProcessor::processKeyEvent(KeyEvent *e) /* 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()); } @@ -1017,67 +1010,6 @@ void CoreSessionEventProcessor::handleCtcpClientinfo(CtcpEvent *e) } -// http://www.irchelp.org/irchelp/rfc/ctcpspec.html -// 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 [] - // reverse: SEND 0 - QStringList params = e->param().split(' '); - if (params.count()) { - QString cmd = params[0].toUpper(); - if (cmd == "SEND") { - if (params.count() < 4) { - qWarning() << "Invalid DCC SEND request:" << e; // TODO emit proper error to client - return; - } - QString filename = params[1]; - QHostAddress address; - quint16 port = params[3].toUShort(); - quint64 size = 0; - QString numIp = params[2]; // this is either IPv4 as a 32 bit value, or IPv6 (which always contains a colon) - if (numIp.contains(':')) { // IPv6 - if (!address.setAddress(numIp)) { - qWarning() << "Invalid IPv6:" << numIp; - return; - } - } - else { - address.setAddress(numIp.toUInt()); - } - - if (port == 0) { // Reverse DCC is indicated by a 0 port - emit newEvent(new MessageEvent(Message::Error, e->network(), tr("Reverse DCC SEND not supported"), e->prefix(), e->target(), Message::None, e->timestamp())); - return; - } - if (port < 1024) { - qWarning() << "Privileged port requested:" << port; // FIXME ask user if this is ok - } - - - if (params.count() > 4) { // filesize is optional - size = params[4].toULong(); - } - - // TODO: check if target is the right thing to use for the partner - CoreTransfer *transfer = new CoreTransfer(Transfer::Receive, e->target(), filename, address, port, size, this); - coreSession()->signalProxy()->synchronize(transfer); - coreSession()->transferManager()->addTransfer(transfer); - } - else { - emit newEvent(new MessageEvent(Message::Error, e->network(), tr("DCC %1 not supported").arg(cmd), e->prefix(), e->target(), Message::None, e->timestamp())); - return; - } - } -} - - void CoreSessionEventProcessor::handleCtcpPing(CtcpEvent *e) { e->setReply(e->param().isNull() ? "" : e->param());