comparison libpurple/protocols/bonjour/mdns_win32.c @ 25589:71aafff24358

Backport ab47b66449b213d6fbfc728cc1e8c161bed87755 (#8782 - Fix persistent Bonjour buddies.)
author Daniel Atallah <daniel.atallah@gmail.com>
date Thu, 30 Apr 2009 05:16:29 +0000
parents c73a891d26a6
children 927e01ad06ae
comparison
equal deleted inserted replaced
25588:21a90a4c76d6 25589:71aafff24358
167 ResolveCallbackArgs *args = (ResolveCallbackArgs*) data; 167 ResolveCallbackArgs *args = (ResolveCallbackArgs*) data;
168 Win32BuddyImplData *idata = args->bb->mdns_impl_data; 168 Win32BuddyImplData *idata = args->bb->mdns_impl_data;
169 gboolean delete_buddy = FALSE; 169 gboolean delete_buddy = FALSE;
170 PurpleBuddy *pb = NULL; 170 PurpleBuddy *pb = NULL;
171 171
172 if ((pb = purple_find_buddy(args->account, args->res_data->name))) {
173 if (pb->proto_data != args->bb) {
174 purple_debug_error("bonjour", "Found purple buddy for %s not matching bonjour buddy record.",
175 args->res_data->name);
176 goto cleanup;
177 }
172 /* Make sure that the BonjourBuddy associated with this request is still around */ 178 /* Make sure that the BonjourBuddy associated with this request is still around */
173 if (g_slist_find(pending_buddies, args->bb) == NULL) 179 } else if (g_slist_find(pending_buddies, args->bb) == NULL) {
180 purple_debug_error("bonjour", "host resolution - complete, but buddy no longer pending.\n");
174 goto cleanup; 181 goto cleanup;
175 182 }
176 if ((pb = purple_find_buddy(args->account, args->bb->name)))
177 if (pb->proto_data != args->bb)
178 purple_debug_error("bonjour", "Found purple buddy for %s not matching bonjour buddy record. "
179 "This is going to be ugly!.\n", args->bb->name);
180 183
181 if (!hosts || !hosts->data) { 184 if (!hosts || !hosts->data) {
182 purple_debug_error("bonjour", "host resolution - callback error.\n"); 185 purple_debug_error("bonjour", "host resolution - callback error.\n");
183 delete_buddy = TRUE; 186 delete_buddy = TRUE;
184 } else { 187 } else {