Change status to offline for all chat rooms belonging to a given account when it goes offline.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4012 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
fd6af43b74
commit
2ab186d22d
|
@ -2201,6 +2201,22 @@ static void removePendingChat(const String& id, ClientAccountList* accounts = 0)
|
||||||
room->flashChat(id,false);
|
room->flashChat(id,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set offline to MUCs belonging to a given account
|
||||||
|
static void setOfflineMucs(ClientAccount* acc)
|
||||||
|
{
|
||||||
|
if (!acc || Client::exiting())
|
||||||
|
return;
|
||||||
|
for (ObjList* o = acc->mucs().skipNull(); o; o = o->skipNext()) {
|
||||||
|
MucRoom* room = static_cast<MucRoom*>(o->get());
|
||||||
|
if (room->resource().offline())
|
||||||
|
continue;
|
||||||
|
room->resource().m_status = ClientResource::Offline;
|
||||||
|
room->resource().m_affiliation = MucRoomMember::AffNone;
|
||||||
|
room->resource().m_role = MucRoomMember::RoleNone;
|
||||||
|
updateMucRoomMember(*room,room->resource());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClientWizard
|
* ClientWizard
|
||||||
|
@ -5257,6 +5273,7 @@ bool DefaultLogic::handleUserNotify(Message& msg, bool& stopLogic)
|
||||||
acc->resource().m_id = acc->m_params.getValue("resource");
|
acc->resource().m_id = acc->m_params.getValue("resource");
|
||||||
}
|
}
|
||||||
clearAccountContacts(*acc);
|
clearAccountContacts(*acc);
|
||||||
|
setOfflineMucs(acc);
|
||||||
}
|
}
|
||||||
// Clear some internal params
|
// Clear some internal params
|
||||||
acc->m_params.clearParam("internal.nologinfail");
|
acc->m_params.clearParam("internal.nologinfail");
|
||||||
|
|
Loading…
Reference in New Issue