--- a/libpurple/protocols/bonjour/mdns_dns_sd.c Mon Dec 21 20:23:47 2020 -0600
+++ b/libpurple/protocols/bonjour/mdns_dns_sd.c Mon Dec 21 21:45:26 2020 -0600
@@ -198,17 +198,27 @@
DNSServiceRef txt_query_sr;
/* finally, set up the continuous txt record watcher, and add the buddy to purple */
errorCode = DNSServiceQueryRecord(&txt_query_sr, kDNSServiceFlagsLongLivedQuery,
kDNSServiceInterfaceIndexAny, args->full_service_name, kDNSServiceType_TXT,
kDNSServiceClass_IN, _mdns_record_query_callback, args->bb);
if (errorCode == kDNSServiceErr_NoError) {
- const char *ip = inet_ntoa(((struct sockaddr_in *) address)->sin_addr);
+ GSocketAddress *addr = g_socket_address_new_from_native( + (gpointer)address, sizeof(struct sockaddr_in)); + if (G_IS_INET_SOCKET_ADDRESS(addr)) { + GInetAddress *inet_addr = g_inet_socket_address_get_address( + G_INET_SOCKET_ADDRESS(addr)); + ip = g_inet_address_to_string(inet_addr); purple_debug_info("bonjour", "Found buddy %s at %s:%d\n", args->bb->name, ip, args->bb->port_p2pj);
- args->bb->ips = g_slist_prepend(args->bb->ips, g_strdup(ip));
+ args->bb->ips = g_slist_prepend(args->bb->ips, ip); args->res_data->ip = args->bb->ips->data;
args->res_data->txt_query = g_new(DnsSDServiceRefHandlerData, 1);
@@ -223,7 +233,6 @@
purple_debug_error("bonjour", "Unable to set up record watcher for buddy %s (%d)\n", args->bb->name, errorCode);
--- a/libpurple/protocols/irc/dcc_send.c Mon Dec 21 20:23:47 2020 -0600
+++ b/libpurple/protocols/irc/dcc_send.c Mon Dec 21 21:45:26 2020 -0600
@@ -83,7 +83,6 @@
void irc_dccsend_recv(struct irc_conn *irc, const char *from, const char *msg) {
@@ -133,8 +132,10 @@
nip = strtoul(token[i], NULL, 10);
- addr.s_addr = g_htonl(nip);
- xfer->ip = g_strdup(inet_ntoa(addr));
+ GInetAddress *addr = g_inet_address_new_from_bytes( + (const guchar *)&nip, G_SOCKET_FAMILY_IPV4); + xfer->ip = g_inet_address_to_string(addr); xfer->ip = g_strdup(token[i]);