comparison libpurple/protocols/jabber/jabber.h @ 23648:9bf36aad8735

We talked about this and decided it was probably cleaner to not use a static variable here.
author Mark Doliner <mark@kingant.net>
date Wed, 06 Aug 2008 09:27:06 +0000
parents 224169be5830
children 3c3032be12de 4bc74deeb503
comparison
equal deleted inserted replaced
23647:bfbad8f78ec6 23648:9bf36aad8735
105 /* SASL authentication */ 105 /* SASL authentication */
106 char *expected_rspauth; 106 char *expected_rspauth;
107 107
108 GHashTable *buddies; 108 GHashTable *buddies;
109 gboolean roster_parsed; 109 gboolean roster_parsed;
110
111 /*
112 * This boolean was added to eliminate a heinous bug where we would
113 * get into a loop with the server and move a buddy back and forth
114 * from one group to another.
115 *
116 * The sequence goes something like this:
117 * 1. Our resource and another resource both approve an authorization
118 * request at the exact same time. We put the buddy in group A and
119 * the other resource put the buddy in group B.
120 * 2. The server receives the roster add for group B and sends us a
121 * roster push.
122 * 3. We receive this roster push and modify our local blist. This
123 * triggers us to send a roster add for group B.
124 * 4. The server recieves our earlier roster add for group A and sends
125 * us a roster push.
126 * 5. We receive this roster push and modify our local blist. This
127 * triggers us to send a roster add for group A.
128 * 6. The server receives our earlier roster add for group B and sends
129 * us a roster push.
130 * (repeat steps 3 through 6 ad infinitum)
131 *
132 * This boolean is used to short-circuit the sending of a roster add
133 * when we receive a roster push.
134 *
135 * See these bug reports:
136 * http://trac.adiumx.com/ticket/8834
137 * http://developer.pidgin.im/ticket/5484
138 * http://developer.pidgin.im/ticket/6188
139 */
140 gboolean currently_parsing_roster_push;
110 141
111 GHashTable *chats; 142 GHashTable *chats;
112 GList *chat_servers; 143 GList *chat_servers;
113 PurpleRoomlist *roomlist; 144 PurpleRoomlist *roomlist;
114 GList *user_directories; 145 GList *user_directories;