X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fircserverhandler.h;h=52ecb6a56435bec240b45c987f96cb9011534551;hp=fe7f4f2d45aceab7e9fb3d56ba24dde6a8bd2fc2;hb=712781ef33198acb7267e02ee6f8f9bfc8598d5a;hpb=902c95728306e5ba115de84800fc8d5d239c9d62 diff --git a/src/core/ircserverhandler.h b/src/core/ircserverhandler.h index fe7f4f2d..52ecb6a5 100644 --- a/src/core/ircserverhandler.h +++ b/src/core/ircserverhandler.h @@ -1,11 +1,11 @@ /*************************************************************************** - * Copyright (C) 2005/06 by The Quassel Team * + * Copyright (C) 2005-10 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -18,43 +18,45 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _IRCSERVERHANDLER_H_ -#define _IRCSERVERHANDLER_H_ +#ifndef IRCSERVERHANDLER_H +#define IRCSERVERHANDLER_H -#include "basichandler.h" +#include "corebasichandler.h" +#include "netsplit.h" -class IrcServerHandler : public BasicHandler { +class IrcServerHandler : public CoreBasicHandler { Q_OBJECT public: - IrcServerHandler(Server *parent = 0); + IrcServerHandler(CoreNetwork *parent); ~IrcServerHandler(); void handleServerMsg(QByteArray rawMsg); - + public slots: - void handleJoin(QString, QStringList); - void handleKick(QString, QStringList); - void handleMode(QString, QStringList); - void handleNick(QString, QStringList); - void handleNotice(QString, QStringList); - void handlePart(QString, QStringList); - void handlePing(QString, QStringList); - void handlePrivmsg(QString, QStringList); - void handleQuit(QString, QStringList); - void handleTopic(QString, QStringList); - - void handle001(QString, QStringList); // RPL_WELCOME - void handle005(QString, QStringList); // RPL_ISUPPORT - void handle331(QString, QStringList); // RPL_NOTOPIC - void handle332(QString, QStringList); // RPL_TOPIC - void handle333(QString, QStringList); // Topic set by... - void handle353(QString, QStringList); // RPL_NAMREPLY - void handle432(QString, QStringList); // ERR_ERRONEUSNICKNAME - void handle433(QString, QStringList); // ERR_NICKNAMEINUSE - - void defaultHandler(QString cmd, QString prefix, QStringList params); -}; + void handleNotice(const QString &prefix, const QList ¶ms); + void handlePrivmsg(const QString &prefix, const QList ¶ms); + + void defaultHandler(QString cmd, const QString &prefix, const QList ¶ms); + +private: + void tryNextNick(const QString &errnick, bool erroneus = false); + bool checkParamCount(const QString &methodName, const QList ¶ms, int minParams); + + // holds the target for numeric replies or is invalid otherwise + inline const QString &target() const { return _target; } + bool _whois; + QString _target; + + // structure to organize netsplits + // key: quit message + // value: the corresponding netsplit object + QHash _netsplits; + +#ifdef HAVE_QCA2 + QByteArray decrypt(const QString &target, const QByteArray &message, bool isTopic = false); +#endif +}; #endif