File 0006-NIS-patch.patch of Package NetworkManager
From 8587d674875f24038e69d92c935d227272665ee2 Mon Sep 17 00:00:00 2001
From: Tambet Ingo <tambet@gmail.com>
Date: Tue, 13 Jan 2009 12:34:51 +0200
Subject: [PATCH] NIS patch.
Index: b/src/dhcp-manager/nm-dhcp-manager.c
===================================================================
--- a/src/dhcp-manager/nm-dhcp-manager.c
+++ b/src/dhcp-manager/nm-dhcp-manager.c
@@ -952,6 +952,18 @@ nm_dhcp_manager_options_to_ip4_config (c
nm_ip4_config_set_mtu (ip4_config, int_mtu);
}
+ str = g_hash_table_lookup (options, "new_nis_domain");
+ if (str) {
+ nm_info (" NIS domain '%s'", str);
+ g_object_set_data_full (G_OBJECT (ip4_config), "NISDOMAIN", g_strdup (str), g_free);
+ }
+
+ str = g_hash_table_lookup (options, "new_nis_servers");
+ if (str) {
+ nm_info (" NIS servers '%s'", str);
+ g_object_set_data_full (G_OBJECT (ip4_config), "NISSERVERS", g_strdup (str), g_free);
+ }
+
return ip4_config;
error:
Index: b/src/named-manager/nm-named-manager.c
===================================================================
--- a/src/named-manager/nm-named-manager.c
+++ b/src/named-manager/nm-named-manager.c
@@ -117,8 +117,20 @@ merge_one_ip4_config (NMIP4Config *dst,
*/
for (i = 0; i < num_domains; i++)
nm_ip4_config_add_search (dst, nm_ip4_config_get_domain (src, i));
-}
+ if (!g_object_get_data (G_OBJECT (dst), "NISDOMAIN") &&
+ !g_object_get_data (G_OBJECT (dst), "NISSERVERS")) {
+ const char *tmp;
+
+ tmp = g_object_get_data (G_OBJECT (src), "NISDOMAIN");
+ if (tmp)
+ g_object_set_data_full (G_OBJECT (dst), "NISDOMAIN", g_strdup (tmp), g_free);
+
+ tmp = g_object_get_data (G_OBJECT (src), "NISSERVERS");
+ if (tmp)
+ g_object_set_data_full (G_OBJECT (dst), "NISSERVERS", g_strdup (tmp), g_free);
+ }
+}
#if defined(TARGET_SUSE)
/**********************************/
@@ -172,6 +184,8 @@ dispatch_netconfig (const char *domain,
char **searches,
char **nameservers,
const char *iface,
+ const char *nis_domain,
+ const char *nis_servers,
GError **error)
{
char *str;
@@ -206,6 +220,12 @@ dispatch_netconfig (const char *domain,
g_free (str);
}
+ if (nis_domain)
+ write_to_netconfig (fd, "NISDOMAIN", nis_domain);
+
+ if (nis_servers)
+ write_to_netconfig (fd, "NISSERVERS", nis_servers);
+
close (fd);
/* Wait until the process exits */
@@ -509,7 +529,10 @@ rewrite_resolv_conf (NMNamedManager *mgr
#ifdef TARGET_SUSE
if (success == FALSE)
- success = dispatch_netconfig (domain, searches, nameservers, iface, error);
+ success = dispatch_netconfig (domain, searches, nameservers, iface,
+ g_object_get_data (G_OBJECT (composite), "NISDOMAIN"),
+ g_object_get_data (G_OBJECT (composite), "NISSERVERS"),
+ error);
#endif
if (success == FALSE)