#1270 new defect

bitlbee-purple resets contact groups on reconnect

Reported by: me@… Owned by:
Priority: normal Milestone:
Component: Purple Version: devel
Keywords: Cc:
IRC client+version: Client-independent Operating System: Linux
OS version/distro: Ubuntu 16.04.1


How to reproduce

  • join never existed channel, /join &newgroup;
  • make it filled by a contact group, chan set fill_by group, chan set group newgroup;
  • add there new contacts, /invite user;
  • confirm creating new contact group, group info newgroup.
  • save config and reconnect.

Expected results

Recently invited user still in newgroup group after client re-connection.

Actual results

Contact group newgroup is empty after client re-connection.

Attachments (0)

Change History (1)

comment:1 Changed at 2016-10-24T22:25:42Z by Aleksey Lim <me@…>

Did not take deep investigation but the issue happens during blist.xml loading when accounts list still empty. Thus, purple plugin cannot populate custom contact groups. The following fast hack helped me to workaround the issue.

diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c
index 71b495d..5000538 100644
--- a/protocols/purple/purple.c
+++ b/protocols/purple/purple.c
@@ -127,9 +127,6 @@ static void purple_init(account_t *acc)
-               purple_blist_load();
-               purple_prefs_load();
                if (proxytype == PROXY_SOCKS4A) {
                        /* do this here after loading prefs. yes, i know, it sucks */
                        purple_prefs_set_bool("/purple/proxy/socks4_remotedns", TRUE);
@@ -352,6 +349,10 @@ static void purple_login(account_t *acc)
        pd->next_request_id = 0;
        purple_account_set_password(pd->account, acc->pass);
        purple_sync_settings(acc, pd->account);
+        purple_accounts_add(pd->account);
+        purple_blist_load();
+        purple_prefs_load();
        purple_account_set_enabled(pd->account, "BitlBee", TRUE);

Modify Ticket

as new The ticket will remain with no owner.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.