Adium

Opened 13 years ago

Closed 11 years ago

Last modified 11 years ago

#7171 closed defect (fixed)

Duplicated buddies on authorization

Reported by: random Owned by: nobody
Milestone: Adium 1.3.3 Component: Service/XMPP (Jabber)
Version: Severity: normal
Keywords: jabber authorization buddy pidgin Cc: random@…
Patch Status:

Description

So far, a friend of mine (Pidgin 2.0.1) and me were unable to authorize each other properly, we both ended up with duplicated buddies but without mutual authorization of buddy pairs. Here's the request flow triggered by a request from me:

me                   --authorization request-->  friend
friend

me                   --    friend accepts   --   friend
friend                                           me

me                   <--authorization request--  friend
friend                                           me
                                                 (me?)

me                   --      me accepts      --   friend
friend                                           me
friend                                           me

Also, Adium ignores an unchecked "add buddy to my list" checkbox. Both sides have OTR enabled.

Interestingly, the duplicated buddies on my part differed in Jabber ID when those were not lowercase letters only:

correct foo;bar@jabbernet.eu VS duplicate foobar@jabbernet.eu
coorect     Baz@jabbernet.eu VS duplicate    baz@jabbernet.eu

I don't remember correctly, but I think that the stripped IDs were introduced with the answer authorization request from Pidgin.

The issue is likely related to http://developer.pidgin.im/ticket/1089 but I can't know which application to blame.

Change History (9)

comment:1 Changed 13 years ago by Jordan

Milestone: Waiting on libpurple

If this is a problem with Pidgin, then it's likely in libpurple, in which case when it's fixed there, it can be fixed here.

comment:2 Changed 12 years ago by Robert

#p1089 has been closed in favour of #p479.

comment:3 Changed 12 years ago by Carlos Morales

comment:4 Changed 11 years ago by Robert

Is this still an issue in 1.3?

comment:5 Changed 11 years ago by Robert

Milestone: Waiting on libpurpleNeeds feedback from users
pending: 01

comment:1 Changed 11 years ago by trac-robot

pending: 10
Status: newclosed

This ticket was closed automatically by the system. It was previously set to a Pending status and hasn't been updated within 14 days.

comment:2 Changed 11 years ago by Robert

Status: closedreopened

comment:3 Changed 11 years ago by Robert

Milestone: Needs feedback from usersAdium 1.3.3
Resolution: fixed
Status: reopenedclosed

comment:4 Changed 11 years ago by Paul Aurich

I'm not sure how relevant it is to Adium, but anyway.

Beyond the change that went into libpurple 2.5.3 (which affects the major cause of duplicates in the XMPP prpl), I have a patch that changes Pidgin and Finch's UI and hopefully completely eliminates dupes.

In short, the UI for adding a buddy to a group was always calling purple_buddy_new() followed by purple_blist_add_buddy() without checking if the buddy was already in the specified group, thus ending up with two PurpleBuddies in the group.

The solution is to call purple_find_buddy_in_group() first and, if that fails, create the buddy. See Pidgin #479 and, in particular, the duplicates-adding.2.patch. (It hasn't been applied because I forgot about it and haven't pestered people enough to review it, but it definitely fixes all the duplicate problems I was able to come up with)

I don't know if Adium handles that situation properly wrt libpurple, but rob-to86 pointed me at this ticket.

Note: See TracTickets for help on using tickets.