besser82 / rpms / pidgin

Forked from rpms/pidgin 6 years ago
Clone
4c3b590
This forces resolv.conf to be re-read every time a connection is made instead of only if NetworkManager establishes a new connection.
4c3b590
This prevents some error cases for roving clients, especially if they do not use NetworkManager.
4c3b590
4c3b590
diff -urN pidgin-2.5.3.orig/libpurple/connection.c pidgin-2.5.3/libpurple/connection.c
4c3b590
--- pidgin-2.5.3.orig/libpurple/connection.c	2008-12-20 19:38:16.000000000 -0500
4c3b590
+++ pidgin-2.5.3/libpurple/connection.c	2008-12-26 16:55:32.000000000 -0500
4c3b590
@@ -42,6 +42,10 @@
6d9a832
 
6d9a832
 #define KEEPALIVE_INTERVAL 30
6d9a832
 
6d9a832
+#include <netinet/in.h>
6d9a832
+#include <arpa/nameser.h>
6d9a832
+#include <resolv.h>
6d9a832
+
6d9a832
 static GList *connections = NULL;
6d9a832
 static GList *connections_connecting = NULL;
6d9a832
 static PurpleConnectionUiOps *connection_ui_ops = NULL;
4c3b590
@@ -161,6 +165,9 @@
6d9a832
 
6d9a832
 	purple_signal_emit(purple_connections_get_handle(), "signing-on", gc);
6d9a832
 
6d9a832
+	/* Re-read resolv.conf and friends in case DNS servers have changed */
6d9a832
+	res_init();
6d9a832
+
6d9a832
 	if (regist)
6d9a832
 	{
6d9a832
 		purple_debug_info("connection", "Registering.  gc = %p\n", gc);
4c3b590
diff -urN pidgin-2.5.3.orig/libpurple/network.c pidgin-2.5.3/libpurple/network.c
4c3b590
--- pidgin-2.5.3.orig/libpurple/network.c	2008-12-20 19:38:16.000000000 -0500
4c3b590
+++ pidgin-2.5.3/libpurple/network.c	2008-12-26 16:55:32.000000000 -0500
4c3b590
@@ -633,8 +633,6 @@
6d9a832
 	switch(state)
6d9a832
 	{
6d9a832
 		case NM_STATE_CONNECTED:
6d9a832
-			/* Call res_init in case DNS servers have changed */
6d9a832
-			res_init();
6d9a832
 			if (ui_ops != NULL && ui_ops->network_connected != NULL)
6d9a832
 				ui_ops->network_connected();
4c3b590
 			break;