/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-10 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "network.h"
#include "quassel.h"
#include "util.h"
+#include "coreignorelistmanager.h"
CtcpHandler::CtcpHandler(CoreNetwork *parent)
- : BasicHandler(parent),
- XDELIM("\001")
+ : CoreBasicHandler(parent),
+ XDELIM("\001"),
+ _ignoreListManager(parent->ignoreListManager())
{
QByteArray MQUOTE = QByteArray("\020");
void CtcpHandler::handlePing(CtcpType ctcptype, const QString &prefix, const QString &target, const QString ¶m) {
Q_UNUSED(target)
if(ctcptype == CtcpQuery) {
- reply(nickFromMask(prefix), "PING", param);
- emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP PING request from %1").arg(prefix));
+ if(!_ignoreListManager->ctcpMatch(prefix, network()->networkName(), "PING")) {
+ reply(nickFromMask(prefix), "PING", param);
+ emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP PING request from %1").arg(prefix));
+ }
} else {
// display ping answer
uint now = QDateTime::currentDateTime().toTime_t();
void CtcpHandler::handleVersion(CtcpType ctcptype, const QString &prefix, const QString &target, const QString ¶m) {
Q_UNUSED(target)
if(ctcptype == CtcpQuery) {
- reply(nickFromMask(prefix), "VERSION", QString("Quassel IRC %1 (built on %2) -- http://www.quassel-irc.org")
- .arg(Quassel::buildInfo().plainVersionString)
- .arg(Quassel::buildInfo().buildDate));
- emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP VERSION request by %1").arg(prefix));
+ if(!_ignoreListManager->ctcpMatch(prefix, network()->networkName(), "VERSION")) {
+ reply(nickFromMask(prefix), "VERSION", QString("Quassel IRC %1 (built on %2) -- http://www.quassel-irc.org")
+ .arg(Quassel::buildInfo().plainVersionString)
+ .arg(Quassel::buildInfo().buildDate));
+ emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP VERSION request by %1").arg(prefix));
+ }
} else {
// display Version answer
emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP VERSION answer from %1: %2").arg(prefix).arg(param));
void CtcpHandler::defaultHandler(const QString &cmd, CtcpType ctcptype, const QString &prefix, const QString &target, const QString ¶m) {
Q_UNUSED(ctcptype);
Q_UNUSED(target);
- Q_UNUSED(param);
- emit displayMsg(Message::Error, BufferInfo::StatusBuffer, "", tr("Received unknown CTCP %1 by %2").arg(cmd).arg(prefix));
+ if(!_ignoreListManager->ctcpMatch(prefix, network()->networkName())) {
+ QString str = tr("Received unknown CTCP %1 by %2").arg(cmd).arg(prefix);
+ if(!param.isEmpty())
+ str.append(tr(" with arguments: %1").arg(param));
+ emit displayMsg(Message::Error, BufferInfo::StatusBuffer, "", str);
+ }
}