comparison libgaim/dnsquery.c @ 14358:fdf65b672b87

[gaim-migrate @ 17064] Fix a small memleak committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 27 Aug 2006 22:04:09 +0000
parents e01a8316b08b
children 92eb7a040663
comparison
equal deleted inserted replaced
14357:4e14503b9bac 14358:fdf65b672b87
85 gaim_dnsquery_resolved(GaimDnsQueryData *query_data, GSList *hosts) 85 gaim_dnsquery_resolved(GaimDnsQueryData *query_data, GSList *hosts)
86 { 86 {
87 gaim_debug_info("dnsquery", "IP resolved for %s\n", query_data->hostname); 87 gaim_debug_info("dnsquery", "IP resolved for %s\n", query_data->hostname);
88 if (query_data->callback != NULL) 88 if (query_data->callback != NULL)
89 query_data->callback(hosts, query_data->data, NULL); 89 query_data->callback(hosts, query_data->data, NULL);
90 else
91 {
92 /*
93 * Callback is a required parameter, but it can get set to
94 * NULL if we cancel a thread-based DNS lookup. So we need
95 * to free hosts.
96 */
97 while (hosts != NULL)
98 {
99 hosts = g_slist_remove(hosts, hosts->data);
100 g_free(hosts->data);
101 hosts = g_slist_remove(hosts, hosts->data);
102 }
103 }
104
90 gaim_dnsquery_destroy(query_data); 105 gaim_dnsquery_destroy(query_data);
91 } 106 }
92 107
93 static void 108 static void
94 gaim_dnsquery_failed(GaimDnsQueryData *query_data, const gchar *error_message) 109 gaim_dnsquery_failed(GaimDnsQueryData *query_data, const gchar *error_message)
564 { 579 {
565 GaimDnsQueryData *query_data; 580 GaimDnsQueryData *query_data;
566 581
567 g_return_val_if_fail(hostname != NULL, NULL); 582 g_return_val_if_fail(hostname != NULL, NULL);
568 g_return_val_if_fail(port != 0, NULL); 583 g_return_val_if_fail(port != 0, NULL);
584 g_return_val_if_fail(callback != NULL, NULL);
569 585
570 query_data = g_new(GaimDnsQueryData, 1); 586 query_data = g_new(GaimDnsQueryData, 1);
571 query_data->hostname = g_strdup(hostname); 587 query_data->hostname = g_strdup(hostname);
572 g_strstrip(query_data->hostname); 588 g_strstrip(query_data->hostname);
573 query_data->port = port; 589 query_data->port = port;
726 { 742 {
727 GaimDnsQueryData *query_data; 743 GaimDnsQueryData *query_data;
728 744
729 g_return_val_if_fail(hostname != NULL, NULL); 745 g_return_val_if_fail(hostname != NULL, NULL);
730 g_return_val_if_fail(port != 0, NULL); 746 g_return_val_if_fail(port != 0, NULL);
747 g_return_val_if_fail(callback != NULL, NULL);
731 748
732 gaim_debug_info("dnsquery", "Performing DNS lookup for %s\n", hostname); 749 gaim_debug_info("dnsquery", "Performing DNS lookup for %s\n", hostname);
733 750
734 query_data = g_new(GaimDnsQueryData, 1); 751 query_data = g_new(GaimDnsQueryData, 1);
735 query_data->hostname = g_strdup(hostname); 752 query_data->hostname = g_strdup(hostname);