From: Manuel Nickschas Date: Sun, 14 Feb 2010 22:49:28 +0000 (+0100) Subject: Handle 437 (ERR_UNAVAILRESOURCE) X-Git-Tag: 0.6-beta1~24 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=c8758c4d265a9fe553aa587e8ad0b89407a9d65c Handle 437 (ERR_UNAVAILRESOURCE) --- diff --git a/src/common/ircuser.cpp b/src/common/ircuser.cpp index f1ec7d69..52200254 100644 --- a/src/common/ircuser.cpp +++ b/src/common/ircuser.cpp @@ -181,7 +181,6 @@ void IrcUser::setHost(const QString &host) { void IrcUser::setNick(const QString &nick) { if(!nick.isEmpty() && nick != _nick) { - qDebug() << "setNick" << this << _nick << nick; _nick = nick; updateObjectName(); SYNC(ARG(nick)) diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 445ca7c6..ce15f781 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -1103,6 +1103,24 @@ void IrcServerHandler::handle433(const QString &prefix, const QList tryNextNick(errnick); } +/* ERR_UNAVAILRESOURCE */ +void IrcServerHandler::handle437(const QString &prefix, const QList ¶ms) { + Q_UNUSED(prefix); + if(!checkParamCount("IrcServerHandler::handle437()", params, 1)) + return; + + QString errnick = serverDecode(params[0]); + emit displayMsg(Message::Error, BufferInfo::StatusBuffer, "", tr("Nick/channel is temporarily unavailable: %1").arg(errnick)); + + // if there is a problem while connecting to the server -> we handle it + // but only if our connection has not been finished yet... + if(!network()->currentServer().isEmpty()) + return; + + if(!network()->isChannelName(errnick)) + tryNextNick(errnick); +} + /* Handle signals from Netsplit objects */ void IrcServerHandler::handleNetsplitJoin(const QString &channel, const QStringList &users, const QStringList &modes, const QString& quitMessage) diff --git a/src/core/ircserverhandler.h b/src/core/ircserverhandler.h index 3b2b8750..79480625 100644 --- a/src/core/ircserverhandler.h +++ b/src/core/ircserverhandler.h @@ -80,6 +80,7 @@ public slots: void handle369(const QString &prefix, const QList ¶ms); // RPL_ENDOFWHOWAS void handle432(const QString &prefix, const QList ¶ms); // ERR_ERRONEUSNICKNAME void handle433(const QString &prefix, const QList ¶ms); // ERR_NICKNAMEINUSE + void handle437(const QString &prefix, const QList ¶ms); // ERR_UNAVAILRESOURCE void defaultHandler(QString cmd, const QString &prefix, const QList ¶ms);