From 5ffb71cab5514f6723ce5163e4197df9b0e7d278 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 22 Feb 2005 21:46:32 +0000 Subject: [PATCH] 2005-02-22 Dan Williams * src/NetworkManagerPolicy.c - (nm_policy_activation_finish): Deactivate a device if its activation fails, and NULL out data->active_device so that we have to choose another one. This may make NetworkManager keep attempting to connect to a wired network if it fails, but if it keeps failing the wired network has more problems than just NetworkManager. * src/backends/NetworkManagerRedHat.c - (nm_system_update_dns): fix to actually run nscd -i hosts when nscd is already running * named/nm-named-manager.c - (rewrite_resolv_conf): Call nm_system_update_dns() when not using named so that the distro can flush whatever name service caching daemon it uses git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@468 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 18 ++++++++++++++++++ named/nm-named-manager.c | 4 ++++ src/NetworkManagerPolicy.c | 3 +++ src/backends/NetworkManagerRedHat.c | 13 ++++++++----- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2cabf2d39..175287129 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2005-02-22 Dan Williams + + * src/NetworkManagerPolicy.c + - (nm_policy_activation_finish): Deactivate a device if its activation fails, + and NULL out data->active_device so that we have to choose another one. + This may make NetworkManager keep attempting to connect to a wired network + if it fails, but if it keeps failing the wired network has more problems than + just NetworkManager. + + * src/backends/NetworkManagerRedHat.c + - (nm_system_update_dns): fix to actually run nscd -i hosts when nscd + is already running + + * named/nm-named-manager.c + - (rewrite_resolv_conf): Call nm_system_update_dns() when not using + named so that the distro can flush whatever name service caching + daemon it uses + 2005-02-21 Dan Williams * src/NetworkManagerDHCP.[ch] diff --git a/named/nm-named-manager.c b/named/nm-named-manager.c index be8e76b0f..cf4cf7efc 100644 --- a/named/nm-named-manager.c +++ b/named/nm-named-manager.c @@ -45,6 +45,9 @@ #define RESOLV_CONF "/etc/resolv.conf" #endif +/* From NetworkManagerSystem.h/.c */ +void nm_system_update_dns (void); + enum { PROP_0, @@ -640,6 +643,7 @@ rewrite_resolv_conf (NMNamedManager *mgr, GError **error) if (rename (tmp_resolv_conf, RESOLV_CONF) < 0) goto lose; + nm_system_update_dns (); return TRUE; lose: diff --git a/src/NetworkManagerPolicy.c b/src/NetworkManagerPolicy.c index ce19c366f..71910fdf6 100644 --- a/src/NetworkManagerPolicy.c +++ b/src/NetworkManagerPolicy.c @@ -282,6 +282,9 @@ gboolean nm_policy_activation_finish (gpointer user_data) } else syslog (LOG_INFO, "Activation (%s) failed.", nm_device_get_iface (dev)); + if (data->active_device == dev) + data->active_device = NULL; + nm_device_deactivate (dev, FALSE); break; case DEVICE_ACTIVATION_CANCELED: diff --git a/src/backends/NetworkManagerRedHat.c b/src/backends/NetworkManagerRedHat.c index f31c1795c..1b9545a03 100644 --- a/src/backends/NetworkManagerRedHat.c +++ b/src/backends/NetworkManagerRedHat.c @@ -283,12 +283,15 @@ void nm_system_kill_all_dhcp_daemons (void) */ void nm_system_update_dns (void) { -#if 0 -/* This doesn't acutally seem to work very well... */ - if(nm_spawn_process ("/etc/init.d/nscd status")) - nm_spawn_process ("nscd -i hosts"); -#endif +#ifdef NM_NO_NAMED + if(nm_spawn_process ("/etc/init.d/nscd status") == 0) + { + syslog (LOG_ERR, "Clearing nscd hosts cache."); + nm_spawn_process ("/usr/sbin/nscd -i hosts"); + } +#else nm_spawn_process ("/usr/bin/killall -q nscd"); +#endif }