--- a/src/proxy.c Mon Jan 31 23:30:14 2005 -0500
+++ b/src/proxy.c Mon Jan 31 23:54:25 2005 -0500
@@ -650,8 +650,12 @@
static gboolean dns_main_thread_cb(gpointer data) {
dns_tdata *td = (dns_tdata*)data;
+ if (td->errmsg != NULL) { + gaim_debug_info("dns", "%s\n", td->errmsg); td->callback(td->hosts, td->data, td->errmsg);
@@ -661,22 +665,22 @@
dns_tdata *td = (dns_tdata*)data;
- if(!(hp = gethostbyname(td->hostname)))
- memset(&sin, 0, sizeof(struct sockaddr_in));
- memcpy(&sin.sin_addr.s_addr, hp->h_addr, hp->h_length);
- sin.sin_family = hp->h_addrtype;
- sin.sin_port = htons(td->port);
+ if ((hp = gethostbyname(td->hostname))) { + memset(&sin, 0, sizeof(struct sockaddr_in)); + memcpy(&sin.sin_addr.s_addr, hp->h_addr, hp->h_length); + sin.sin_family = hp->h_addrtype; + sin.sin_port = htons(td->port); - td->hosts = g_slist_append(td->hosts, GINT_TO_POINTER(sizeof(sin)));
- td->hosts = g_slist_append(td->hosts, g_memdup(&sin, sizeof(sin)));
+ td->hosts = g_slist_append(td->hosts, + GINT_TO_POINTER(sizeof(sin))); + td->hosts = g_slist_append(td->hosts, + g_memdup(&sin, sizeof(sin))); + td->errmsg = g_strdup_printf("DNS error: %d", errno); /* back to main thread */
g_idle_add(dns_main_thread_cb, td);
int gaim_gethostbyname_async(const char *hostname, int port,