# HG changeset patch # User Daniel Atallah # Date 1241068589 0 # Node ID 71aafff243587f05989dea6dd23a10ee2202f4e8 # Parent 21a90a4c76d673bc64e8c02ee7d532ea19c85460 Backport ab47b66449b213d6fbfc728cc1e8c161bed87755 (#8782 - Fix persistent Bonjour buddies.) diff -r 21a90a4c76d6 -r 71aafff24358 libpurple/protocols/bonjour/mdns_win32.c --- a/libpurple/protocols/bonjour/mdns_win32.c Thu Apr 30 05:14:38 2009 +0000 +++ b/libpurple/protocols/bonjour/mdns_win32.c Thu Apr 30 05:16:29 2009 +0000 @@ -169,14 +169,17 @@ gboolean delete_buddy = FALSE; PurpleBuddy *pb = NULL; + if ((pb = purple_find_buddy(args->account, args->res_data->name))) { + if (pb->proto_data != args->bb) { + purple_debug_error("bonjour", "Found purple buddy for %s not matching bonjour buddy record.", + args->res_data->name); + goto cleanup; + } /* Make sure that the BonjourBuddy associated with this request is still around */ - if (g_slist_find(pending_buddies, args->bb) == NULL) + } else if (g_slist_find(pending_buddies, args->bb) == NULL) { + purple_debug_error("bonjour", "host resolution - complete, but buddy no longer pending.\n"); goto cleanup; - - if ((pb = purple_find_buddy(args->account, args->bb->name))) - if (pb->proto_data != args->bb) - purple_debug_error("bonjour", "Found purple buddy for %s not matching bonjour buddy record. " - "This is going to be ugly!.\n", args->bb->name); + } if (!hosts || !hosts->data) { purple_debug_error("bonjour", "host resolution - callback error.\n");