pidgin: ebc5ac66: Don't try to tell the IM network that we...
Mark Doliner
mark at kingant.net
Wed Jun 25 20:03:47 EDT 2008
On Mon, 23 Jun 2008 21:02:28 -0500, Kevin Stange wrote
> Kevin Stange wrote:
> > Stu Tomlinson wrote:
> >> On Fri, 2008-05-02 at 02:20 -0400, markdoliner at pidgin.im wrote:
> >>> -----------------------------------------------------------------
> >>> Revision: ebc5ac66e700f6c67e30069ee2ebd4bb61f82ec8
> >>> Ancestor: 2a2005d1ea7113d6455687048cd66fdb825b991b
> >>> Author: markdoliner at pidgin.im
> >>> Date: 2008-05-02T06:15:33
> >>> Branch: im.pidgin.pidgin
> >>> URL:
> >>>
http://d.pidgin.im/viewmtn/revision/info/ebc5ac66e700f6c67e30069ee2ebd4bb61f82ec8
> >>>
> >>>
> >>> Modified files:
> >>> libpurple/idle.c
> >>>
> >>> ChangeLog:
> >>> Don't try to tell the IM network that we're not idle when we disconnect.
> >>> This was causing a crash for me in silc when I got disconnected while
> >>> idle. I'm not really sure why we would want to do this... the commit
> >>> message was "A patch from Kevin Stange that should fix some idleness
> >>> problems with MSN and Yahoo" but I couldn't find any more info about
> >>> that.
> >>
> >> Maybe this is what is causing the failure to return from idle reported
> >> to support at pidgin.im ? or maybe it's just uncovered some other
> >> brokenness?
> >>
> >
> > If it's the cause, how did it not manifest itself for 2 years? I've
> > seen the idle issue reported in the mailing list, actually, but I
> > haven't managed to track it down yet. It definitely started sometime in
> > the past couple releases.
> >
>
> Bah, nevermind me. I read your explanation backwards. You're
> saying this commit from Mark to undo the change did so. The
> function being called does that Mark does, except it also unsets the
> idle on the account itself. My guess is that the presence has to be
> removed from the account or when it signs back on, even though it's
> not in the glist, it still sets itself idle.
Oh I see, that sounds likely. The silc crash was because
prpl_info->set_idle() was being called with a gc that was disconnecting... I
think maybe gc->proto_data had been free'd already, but gc still existed. It
didn't seem like something prpls should have to deal with.
I reverted my change to idle.c and instead changed the silc prpls to check for
null before doing stuff.
> The crash in SILC and that are probably signs of brokenness. We
> might consider that if the glist is not in fact what the accounts
> use to determine their idleness, should that glist exist, or should
> the other place for storing idle be removed instead?
>
> The more places we track one piece of information independently the
> better the chance for them to get out of sync with one another.
I think we might need to keep "GList *idled_accts" in idle.c. See the comment
for that variable at the top of idle.c.
-Mark
More information about the Devel
mailing list