Libcommuni treat ERR_NICKNAME colision the same way as ERR_NICKNAMEINUSE
This commit is contained in:
parent
79b69c4005
commit
61e7cfaa7f
2 changed files with 17 additions and 9 deletions
|
@ -216,6 +216,7 @@ void MyIrcSession::on_socketError(QAbstractSocket::SocketError error) {
|
|||
m_np->handleDisconnected(m_user, 0, reason);
|
||||
m_np->tryNextServer();
|
||||
}
|
||||
LOG4CXX_INFO(logger, m_user << ": Disconnected from IRC network: " << reason);
|
||||
m_connected = false;
|
||||
}
|
||||
|
||||
|
@ -460,6 +461,7 @@ void MyIrcSession::on_numericMessageReceived(IrcMessage *message) {
|
|||
m_np->handleDisconnected(m_user, pbnetwork::CONNECTION_ERROR_INVALID_USERNAME, "Erroneous Nickname");
|
||||
break;
|
||||
case Irc::ERR_NICKNAMEINUSE:
|
||||
case Irc::ERR_NICKCOLLISION:
|
||||
foreach (IrcBuffer *buffer, m_bufferModel->buffers()) {
|
||||
if (!buffer->isChannel()) {
|
||||
continue;
|
||||
|
@ -476,15 +478,14 @@ void MyIrcSession::on_numericMessageReceived(IrcMessage *message) {
|
|||
// m_np->handleDisconnected(m_user, pbnetwork::CONNECTION_ERROR_INVALID_USERNAME, "Nickname is already in use");
|
||||
// }
|
||||
break;
|
||||
case Irc::ERR_NICKCOLLISION:
|
||||
foreach (IrcBuffer *buffer, m_bufferModel->buffers()) {
|
||||
if (!buffer->isChannel()) {
|
||||
continue;
|
||||
}
|
||||
m_np->handleParticipantChanged(m_user, TO_UTF8(nickName()), TO_UTF8(buffer->title()) + m_suffix, pbnetwork::PARTICIPANT_FLAG_CONFLICT);
|
||||
}
|
||||
m_np->handleDisconnected(m_user, pbnetwork::CONNECTION_ERROR_INVALID_USERNAME, "Nickname collision KILL");
|
||||
break;
|
||||
// foreach (IrcBuffer *buffer, m_bufferModel->buffers()) {
|
||||
// if (!buffer->isChannel()) {
|
||||
// continue;
|
||||
// }
|
||||
// m_np->handleParticipantChanged(m_user, TO_UTF8(nickName()), TO_UTF8(buffer->title()) + m_suffix, pbnetwork::PARTICIPANT_FLAG_CONFLICT);
|
||||
// }
|
||||
// m_np->handleDisconnected(m_user, pbnetwork::CONNECTION_ERROR_INVALID_USERNAME, "Nickname collision KILL");
|
||||
// break;
|
||||
case Irc::ERR_PASSWDMISMATCH:
|
||||
foreach (IrcBuffer *buffer, m_bufferModel->buffers()) {
|
||||
if (!buffer->isChannel()) {
|
||||
|
@ -513,6 +514,9 @@ void MyIrcSession::on_numericMessageReceived(IrcMessage *message) {
|
|||
if (m->code() >= 400 && m->code() < 500) {
|
||||
LOG4CXX_INFO(logger, m_user << ": Error message received: " << message->toData().data());
|
||||
}
|
||||
else {
|
||||
LOG4CXX_INFO(logger, m_user << ": Numeric message received: " << message->toData().data());
|
||||
}
|
||||
}
|
||||
|
||||
void MyIrcSession::awayTimeout() {
|
||||
|
|
|
@ -323,6 +323,7 @@ Swift::Presence::ref Conversation::generatePresence(const std::string &nick, int
|
|||
presence->setType(Swift::Presence::Error);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::Conflict)));
|
||||
LOG4CXX_INFO(logger, m_jid.toString() << ": Generating error presence: PARTICIPANT_FLAG_CONFLICT");
|
||||
return presence;
|
||||
}
|
||||
else if (flag & PARTICIPANT_FLAG_NOT_AUTHORIZED) {
|
||||
|
@ -330,6 +331,7 @@ Swift::Presence::ref Conversation::generatePresence(const std::string &nick, int
|
|||
presence->setType(Swift::Presence::Error);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::NotAuthorized, Swift::ErrorPayload::Auth, statusMessage)));
|
||||
LOG4CXX_INFO(logger, m_jid.toString() << ": Generating error presence: PARTICIPANT_FLAG_NOT_AUTHORIZED");
|
||||
return presence;
|
||||
}
|
||||
else if (flag & PARTICIPANT_FLAG_ROOM_NOT_FOUD) {
|
||||
|
@ -337,6 +339,7 @@ Swift::Presence::ref Conversation::generatePresence(const std::string &nick, int
|
|||
presence->setType(Swift::Presence::Error);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::ItemNotFound, Swift::ErrorPayload::Cancel, statusMessage)));
|
||||
LOG4CXX_INFO(logger, m_jid.toString() << ": Generating error presence: PARTICIPANT_FLAG_ROOM_NOT_FOUND");
|
||||
return presence;
|
||||
}
|
||||
else {
|
||||
|
@ -432,6 +435,7 @@ void Conversation::handleParticipantChanged(const std::string &nick, Conversatio
|
|||
// from the room. This code must be extended in case we start sending error
|
||||
// presences in other situations.
|
||||
if (presence->getType() == Swift::Presence::Error) {
|
||||
LOG4CXX_INFO(logger, m_jid.toString() << ": Leaving the conversation " << m_legacyName << " because of error.");
|
||||
m_conversationManager->getUser()->leaveRoom(m_legacyName);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue