diff libpurple/dnsquery.c @ 27016:c162a088489f

Call res_init() when DNS queries fail in case the failure indicates a timeout because we've moved networks. Closes #2825.
author Paul Aurich <paul@darkrain42.org>
date Fri, 22 May 2009 04:44:07 +0000
parents cf373257effb
children 627d23bfdb05
line wrap: on
line diff
--- a/libpurple/dnsquery.c	Fri May 22 04:08:38 2009 +0000
+++ b/libpurple/dnsquery.c	Fri May 22 04:44:07 2009 +0000
@@ -32,6 +32,10 @@
 #include "prefs.h"
 #include "util.h"
 
+#ifndef _WIN32
+#include <resolv.h>
+#endif
+
 #if (defined(__APPLE__) || defined (__unix__)) && !defined(__osf__)
 #define PURPLE_DNSQUERY_USE_FORK
 #endif
@@ -571,8 +575,10 @@
 		g_snprintf(message, sizeof(message), _("Error resolving %s: %d"),
 				query_data->hostname, err);
 #endif
+		/* Re-read resolv.conf and friends in case DNS servers have changed */
+		res_init();
+
 		purple_dnsquery_failed(query_data, message);
-
 	} else if (rc > 0) {
 		/* Success! */
 		while (rc > 0) {