[Pidgin] #4144: Empty nicklist on jabber chat rejoin
Pidgin
trac at pidgin.im
Wed Nov 28 18:39:53 EST 2007
#4144: Empty nicklist on jabber chat rejoin
---------------------+------------------------------------------------------
Reporter: latinsud | Owner: nwalp
Type: defect | Status: new
Priority: minor | Component: XMPP
Version: 2.3.0 | Keywords:
Pending: 0 |
---------------------+------------------------------------------------------
When i am in a jabber muc room, and my internet gets disconnected and
connected again (so pidgin has to log in again), when pidgin rejoins the
muc room i see an empty nick list (i can only see myself).
It happens at least almost always for jabberes at conf.jabberes.org room
(powered by ejabberd).
I've been seeing this behaviour in pidgin (win & linux) for years.
The problem seems to be that muc server sends a disconnection notification
of the old connection to the new one:
{{{
<presence from='jabberes at conf.jabberes.org/SuD'
to='SuD at jabberes.org/Tatil' type='unavailable'><status>Replaced by new
connection</status><x xmlns='http://jabber.org/protocol/muc#user'><item
affiliation='member' role='none'/></x></presence>
}}}
Pidgin then calls jabber_chat_destroy (maybe thinks that the notification
is an order to part?), and since then it will ignore nick list "presence"
messages.
I've been discussing this with some people and we're still not sure if
it's pidgin's or ejabberd's fault.
A patch that worked (but i'm not sure if what i'm doing is correct) is
removing lines 595-596 presence.c:
{{{
if(jid->resource && chat->handle && !strcmp(jid->resource, chat->handle))
jabber_chat_destroy(chat);
}}}
To reproduce it i can hold a connection with iptables and let a new one be
established. Eg:
{{{
# Target current connection source port so a new connection will work
# netstat -n | grep 5222
tcp 0 0 192.168.1.3:43162 83.149.104.137:5222
ESTABLISHED
PU=43161 ; iptables -A OUTPUT -p tcp --sport $PU -j DROP ; iptables -A
INPUT -p tcp --dport $PU -j DROP
}}}
--
Ticket URL: <http://developer.pidgin.im/ticket/4144>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list