/***************************************************************************
- * Copyright (C) 2005-2010 by the Quassel Project *
+ * Copyright (C) 2005-2012 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
_coreSession(session)
{
connect(coreSession(), SIGNAL(networkDisconnected(NetworkId)), this, SLOT(destroyNetsplits(NetworkId)));
+ connect(this, SIGNAL(newEvent(Event *)), coreSession()->eventManager(), SLOT(postEvent(Event *)));
}
bool CoreSessionEventProcessor::checkParamCount(IrcEvent *e, int minParams) {
MessageEvent *msgEvent = new MessageEvent(Message::Error, e->network(),
tr("No free and valid nicks in nicklist found. use: /nick <othernick> to continue"),
QString(), QString(), Message::None, e->timestamp());
- coreSession()->eventManager()->sendEvent(msgEvent);
+ emit newEvent(msgEvent);
return;
} else {
nextNick = errnick + "_";
/* ERR_ERRONEUSNICKNAME */
void CoreSessionEventProcessor::processIrcEvent432(IrcEventNumeric *e) {
+ if(!checkParamCount(e, 1))
+ return;
+
QString errnick;
if(e->params().count() < 2) {
// handle unreal-ircd bug, where unreal ircd doesnt supply a TARGET in ERR_ERRONEUSNICKNAME during registration phase:
ircChannel->joinIrcUsers(ircUsers, newModes);
NetworkSplitEvent *event = new NetworkSplitEvent(EventManager::NetworkSplitJoin, net, channel, newUsers, quitMessage);
- coreSession()->eventManager()->sendEvent(event);
+ emit newEvent(event);
}
void CoreSessionEventProcessor::handleNetsplitQuit(Network *net, const QString &channel, const QStringList &users, const QString& quitMessage) {
NetworkSplitEvent *event = new NetworkSplitEvent(EventManager::NetworkSplitQuit, net, channel, users, quitMessage);
- coreSession()->eventManager()->sendEvent(event);
+ emit newEvent(event);
foreach(QString user, users) {
IrcUser *iu = net->ircUser(nickFromMask(user));
if(iu)
ircChannel->joinIrcUsers(ircUsers, newModes);
foreach(NetworkEvent *event, events) {
event->setFlag(EventManager::Fake); // ignore this in here!
- coreSession()->eventManager()->sendEvent(event);
+ emit newEvent(event);
}
}