| 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); |