Ticket #9874 (closed defect: fixed)
XMPP priority changes not obeyed for pre-existing conversation windows
| Reported by: | rafi | Owned by: | deryni |
|---|---|---|---|
| Milestone: | 2.6.6 | Component: | XMPP |
| Version: | 2.5.8 | Keywords: | |
| Cc: | docks, jaymzh, cfb |
Description
Pidgin is not properly following shifts in user priorities once conversation windows are open. It is quite easy to reproduce and I tested the behavior of two other XMPP clients (Psi & Gajim) to verify that this is in fact an issue specifically with Pidgin.
1. Login with ClientA/home, priority 10 and ClientA/work, priority 5 concurrently.
2. Login with ClientB/home.
3. Open a conversation from ClientB to ClientA and send a message. ClientA/home properly receives the message, because it has the highest priority.
4. Keep the aforementioned conversation window open and change priority on ClientA/home to 1.
5. Send a message from ClientB to ClientA again. ClientA/home again receives the message. It should have gone to ClientA/work because it now has a higher priority.
Basically, it appears Pidgin is routing messages directly to a particular resource, making the determination at the time the conversation window is created. I am not sure routing directly to a resource (user@domain/resource) is even correct. If messages are sent to the JID itself (user@domain), the server should route messages to the highest priority client. Sending messages specifically to a resource is typically an additional option in other XMPP clients, not the default behavior.
If the intention is to continue routing to specific resources, then Pidgin should verify the resource in question is still has the highest priority before continuing to send messages to it. If not, switch the destination resource to the one which has the highest.



