Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
NetworkManager
nm-update-resolv.conf-once.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File nm-update-resolv.conf-once.patch of Package NetworkManager
From f3eb10e13e0056ea034b9e622cdab34fc03b16b3 Mon Sep 17 00:00:00 2001 From: Tambet Ingo <tambet@gmail.com> Date: Wed, 1 Apr 2009 10:02:52 +0300 Subject: [PATCH] Update resolv.conf once. diff --git a/src/NetworkManagerPolicy.c b/src/NetworkManagerPolicy.c index a31baca..4b03258 100644 --- a/src/NetworkManagerPolicy.c +++ b/src/NetworkManagerPolicy.c @@ -563,7 +563,7 @@ update_routing_and_dns (NMPolicy *policy, gboolean force_update) } named_mgr = nm_named_manager_get (); - nm_named_manager_add_ip4_config (named_mgr, ip_iface, ip4_config, dns_type); + nm_named_manager_add_ip4_config (named_mgr, ip4_config, dns_type); g_object_unref (named_mgr); /* Now set new default active connection _after_ updating DNS info, so that @@ -784,7 +784,10 @@ device_ip4_config_changed (NMDevice *device, GParamSpec *pspec, gpointer user_data) { - update_routing_and_dns ((NMPolicy *) user_data, TRUE); + if (nm_device_get_state (device) == NM_DEVICE_STATE_ACTIVATED) + /* Update routing and DNS when the device is active and it's configuration changes. + The device activation and deactivation are caught by device_state_changed() */ + update_routing_and_dns ((NMPolicy *) user_data, TRUE); } static void diff --git a/src/named-manager/nm-named-manager.c b/src/named-manager/nm-named-manager.c index 9fbc3da..05298d8 100644 --- a/src/named-manager/nm-named-manager.c +++ b/src/named-manager/nm-named-manager.c @@ -184,9 +184,8 @@ static gboolean dispatch_netconfig (const char *domain, char **searches, char **nameservers, - const char *iface, - const char *nis_domain, - const char *nis_servers, + const char *nis_domain, + const char *nis_servers, GError **error) { gint fd; @@ -196,8 +195,6 @@ dispatch_netconfig (const char *domain, if (fd < 0) return FALSE; - write_to_netconfig (fd, "INTERFACE", iface); - if (searches) { str = g_strjoinv (" ", searches); @@ -306,7 +303,6 @@ static gboolean dispatch_resolvconf (const char *domain, char **searches, char **nameservers, - const char *iface, GError **error) { char *cmd; @@ -318,7 +314,7 @@ dispatch_resolvconf (const char *domain, if (domain || searches || nameservers) { cmd = g_strconcat (RESOLVCONF_PATH, " -a ", "NetworkManager", NULL); - nm_info ("(%s): writing resolv.conf to %s", iface, RESOLVCONF_PATH); + nm_info ("writing resolv.conf to %s", RESOLVCONF_PATH); if ((f = popen (cmd, "w")) == NULL) g_set_error (error, NM_NAMED_MANAGER_ERROR, @@ -332,7 +328,7 @@ dispatch_resolvconf (const char *domain, } } else { cmd = g_strconcat (RESOLVCONF_PATH, " -d ", "NetworkManager", NULL); - nm_info ("(%s): removing resolv.conf from %s", iface, RESOLVCONF_PATH); + nm_info ("removing resolv.conf from %s", RESOLVCONF_PATH); if (nm_spawn_process (cmd) == 0) retval = TRUE; } @@ -345,9 +341,8 @@ dispatch_resolvconf (const char *domain, static gboolean update_resolv_conf (const char *domain, - char **searches, + char **searches, char **nameservers, - const char *iface, GError **error) { const char *tmp_resolv_conf = RESOLV_CONF ".tmp"; @@ -395,7 +390,7 @@ update_resolv_conf (const char *domain, static gboolean -rewrite_resolv_conf (NMNamedManager *mgr, const char *iface, GError **error) +rewrite_resolv_conf (NMNamedManager *mgr, GError **error) { NMNamedManagerPrivate *priv; NMIP4Config *composite; @@ -486,19 +481,19 @@ rewrite_resolv_conf (NMNamedManager *mgr, const char *iface, GError **error) } #ifdef RESOLVCONF_PATH - success = dispatch_resolvconf (domain, searches, nameservers, iface, error); + success = dispatch_resolvconf (domain, searches, nameservers, error); #endif #ifdef TARGET_SUSE if (success == FALSE) - success = dispatch_netconfig (domain, searches, nameservers, iface, + success = dispatch_netconfig (domain, searches, nameservers, g_object_get_data (G_OBJECT (composite), "NISDOMAIN"), g_object_get_data (G_OBJECT (composite), "NISSERVERS"), error); #endif if (success == FALSE) - success = update_resolv_conf (domain, searches, nameservers, iface, error); + success = update_resolv_conf (domain, searches, nameservers, error); if (success) nm_system_update_dns (); @@ -511,7 +506,6 @@ rewrite_resolv_conf (NMNamedManager *mgr, const char *iface, GError **error) gboolean nm_named_manager_add_ip4_config (NMNamedManager *mgr, - const char *iface, NMIP4Config *config, NMNamedIPConfigType cfg_type) { @@ -519,7 +513,6 @@ nm_named_manager_add_ip4_config (NMNamedManager *mgr, GError *error = NULL; g_return_val_if_fail (mgr != NULL, FALSE); - g_return_val_if_fail (iface != NULL, FALSE); g_return_val_if_fail (config != NULL, FALSE); priv = NM_NAMED_MANAGER_GET_PRIVATE (mgr); @@ -539,7 +532,7 @@ nm_named_manager_add_ip4_config (NMNamedManager *mgr, if (!g_slist_find (priv->configs, config)) priv->configs = g_slist_append (priv->configs, g_object_ref (config)); - if (!rewrite_resolv_conf (mgr, iface, &error)) { + if (!rewrite_resolv_conf (mgr, &error)) { nm_warning ("Could not commit DNS changes. Error: '%s'", error ? error->message : "(none)"); g_error_free (error); } @@ -549,14 +542,12 @@ nm_named_manager_add_ip4_config (NMNamedManager *mgr, gboolean nm_named_manager_remove_ip4_config (NMNamedManager *mgr, - const char *iface, NMIP4Config *config) { NMNamedManagerPrivate *priv; GError *error = NULL; g_return_val_if_fail (mgr != NULL, FALSE); - g_return_val_if_fail (iface != NULL, FALSE); g_return_val_if_fail (config != NULL, FALSE); priv = NM_NAMED_MANAGER_GET_PRIVATE (mgr); @@ -575,7 +566,7 @@ nm_named_manager_remove_ip4_config (NMNamedManager *mgr, g_object_unref (config); - if (!rewrite_resolv_conf (mgr, iface, &error)) { + if (!rewrite_resolv_conf (mgr, &error)) { nm_warning ("Could not commit DNS changes. Error: '%s'", error ? error->message : "(none)"); if (error) g_error_free (error); diff --git a/src/named-manager/nm-named-manager.h b/src/named-manager/nm-named-manager.h index 2b5b647..cc40c04 100644 --- a/src/named-manager/nm-named-manager.h +++ b/src/named-manager/nm-named-manager.h @@ -69,12 +69,10 @@ GType nm_named_manager_get_type (void); NMNamedManager * nm_named_manager_get (void); gboolean nm_named_manager_add_ip4_config (NMNamedManager *mgr, - const char *iface, NMIP4Config *config, NMNamedIPConfigType cfg_type); gboolean nm_named_manager_remove_ip4_config (NMNamedManager *mgr, - const char *iface, NMIP4Config *config); G_END_DECLS diff --git a/src/nm-device.c b/src/nm-device.c index 02e4fc1..89fff27 100644 --- a/src/nm-device.c +++ b/src/nm-device.c @@ -1937,7 +1937,7 @@ nm_device_set_ip4_config (NMDevice *self, named_mgr = nm_named_manager_get (); if (old_config) { /* Remove any previous IP4 Config from the named manager */ - nm_named_manager_remove_ip4_config (named_mgr, ip_iface, old_config); + nm_named_manager_remove_ip4_config (named_mgr, old_config); g_object_unref (old_config); priv->ip4_config = NULL; } @@ -1951,9 +1951,6 @@ nm_device_set_ip4_config (NMDevice *self, if (!nm_ip4_config_get_dbus_path (new_config)) nm_ip4_config_export (new_config); - /* Add the DNS information to the named manager */ - nm_named_manager_add_ip4_config (named_mgr, ip_iface, new_config, NM_NAMED_IP_CONFIG_TYPE_DEFAULT); - nm_device_update_ip4_address (self); } } diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c index 6f3e259..c4878ca 100644 --- a/src/vpn-manager/nm-vpn-connection.c +++ b/src/vpn-manager/nm-vpn-connection.c @@ -505,7 +505,7 @@ nm_vpn_connection_ip4_config_get (DBusGProxy *proxy, /* Add the VPN to DNS */ named_mgr = nm_named_manager_get (); - nm_named_manager_add_ip4_config (named_mgr, priv->tundev, config, NM_NAMED_IP_CONFIG_TYPE_VPN); + nm_named_manager_add_ip4_config (named_mgr, config, NM_NAMED_IP_CONFIG_TYPE_VPN); g_object_unref (named_mgr); priv->ip4_config = config; @@ -942,7 +942,7 @@ vpn_cleanup (NMVPNConnection *connection) /* Remove attributes of the VPN's IP4 Config */ named_mgr = nm_named_manager_get (); - nm_named_manager_remove_ip4_config (named_mgr, priv->tundev, priv->ip4_config); + nm_named_manager_remove_ip4_config (named_mgr, priv->ip4_config); g_object_unref (named_mgr); /* Remove any previously added VPN gateway host route */ -- 1.6.0.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor