qulogic/pidgin

finish implementing callbacks for dnsapi_mdns_retrieve_buddy_icon.
draft win-mdns
2021-02-04, Elliott Sales de Andrade
891ece71f4fd
Parents 41eb2d0c4c9a
Children ba47703827d8
finish implementing callbacks for dnsapi_mdns_retrieve_buddy_icon.
--- a/libpurple/protocols/bonjour/mdns_dnsapi.c Sat Jan 30 05:23:50 2021 -0500
+++ b/libpurple/protocols/bonjour/mdns_dnsapi.c Thu Feb 04 22:39:42 2021 -0500
@@ -307,22 +307,29 @@
_mdns_null_query_parse(gpointer _data)
{
DnsAPIRecordData *data = _data;
- PDNS_RECORD pDnsRecord = data->dns_record;
+ PDNS_RECORD pDnsRecord = NULL;
BonjourBuddy *bb = (BonjourBuddy *)data->context;
Win32BuddyImplData *idata = bb->mdns_impl_data;
g_return_val_if_fail(idata != NULL, G_SOURCE_REMOVE);
- if (pDnsRecord) {
- /* } else if (flags & kDNSServiceFlagsAdd && rrtype == kDNSServiceType_NULL) { */
- /* Buddy Icon response */
+ for (pDnsRecord = data->dns_record; pDnsRecord;
+ pDnsRecord = pDnsRecord->pNext) {
+ if (pDnsRecord->wType == DNS_TYPE_NULL) {
+ /* Buddy Icon response */
+ bonjour_buddy_got_buddy_icon(bb, pDnsRecord->Data.Null.Data,
+ pDnsRecord->Data.Null.dwByteCount);
- /* bonjour_buddy_got_buddy_icon(bb, rdata, rdlen); */
+ /* We've got what we need; stop listening */
+ DnsStopMulticastQuery(idata->null_query);
+ g_clear_pointer(&idata->null_query, g_free);
+ }
+ }
- /* We've got what we need; stop listening */
- DnsStopMulticastQuery(idata->null_query);
- g_clear_pointer(&idata->null_query, g_free);
+ if (data->dns_record) {
+ DnsRecordListFree(data->dns_record, DnsFreeRecordList);
}
+ g_free(data);
return G_SOURCE_REMOVE;
}