Ticket #2903 (closed defect: fixed)
gajim is not seen as muc compliant when there is a nickname conflict
| Reported by: | misc | Owned by: | Jim++ |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.11.1 |
| Component: | chat | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | OS: |
Description
If I connect twice in a room with the same nickname, most muc implementation will send a error for nickname conflict. So gajim ask me to choose another nickname.
Once I have choosed this, the presence packet sent is lacking a x element with http://jabber.org/protocol/muc namespace.
<presence to="jabberfr@chat.jabberfr.org/Misc" id="40"> <x xmlns="vcard-temp:x:update"> <photo>5ab17f67d5a57e280835448cd854b84eb4a231bd</photo> </x> <c xmlns="http://jabber.org/protocol/caps" node="http://gajim.org/caps" ext="ftrans xhtml" ver="0.11.0.1" /> </presence>
One side effect of the missing element is that muconf is sending useless message, as if we were a gc 1.0 client ( like plain message saying "foo has left" ).
After looking at the code, it seems that first presence packet is sent by join_gc, in source:src/common/connection.py, but the secund, with the new nick, is sent by "change_gc_nick", in source:src/common/connection.py, and change_gc_nick do not add the x element.
Here is a patch, I am not sure however that this is logical. I think using change_gc_nick for new presence is some kind of abuse of the function.
