mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-03 20:40:34 +01:00
2005-12-13 Robert Love <rml@novell.com>
Patch by Stefan Scheler <sscheler@suse.de>: * src/nm-ip4-config.h, src/nm-ip4-config.c, src/dhcp-manager/nm-dhcp-manager.c: Add support for setting up NIS via DHCP. Still need the backends to commit the NIS domain name and and servers to yp.conf as needed. git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1179 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
parent
2dcaedf999
commit
4be49b9902
4 changed files with 91 additions and 2 deletions
12
ChangeLog
12
ChangeLog
|
|
@ -1,9 +1,17 @@
|
|||
2005-12-12 Robert Love <rml@novell.com>
|
||||
2005-12-13 Robert Love <rml@novell.com>
|
||||
|
||||
Patch by Stefan Scheler <sscheler@suse.de>:
|
||||
* src/nm-ip4-config.h, src/nm-ip4-config.c,
|
||||
src/dhcp-manager/nm-dhcp-manager.c: Add support for setting up NIS
|
||||
via DHCP. Still need the backends to commit the NIS domain name and
|
||||
and servers to yp.conf as needed.
|
||||
|
||||
2005-12-13 Robert Love <rml@novell.com>
|
||||
|
||||
* src/vpn-manager/nm-dbus-vpn.c: Do not call the lengthy-named function
|
||||
nm_vpn_manager_remove_connection() unless vpn is non-NULL.
|
||||
|
||||
2005-12-12 Robert Love <rml@novell.com>
|
||||
2005-12-13 Robert Love <rml@novell.com>
|
||||
|
||||
* src/named-manager/nm-named-manager.c: Don't unref the config until
|
||||
after we call rewrite_resolv_conf(), because get_last_default_domain()
|
||||
|
|
|
|||
|
|
@ -469,7 +469,10 @@ NMIP4Config * nm_dhcp_manager_get_ip4_config (NMDHCPManager *manager, NMActReque
|
|||
guint32 * ip4_nameservers = NULL;
|
||||
guint32 * ip4_gateway = NULL;
|
||||
guint32 num_ip4_nameservers = 0;
|
||||
guint32 num_ip4_nis_servers = 0;
|
||||
char * domain_names = NULL;
|
||||
char * nis_domain = NULL;
|
||||
guint32 * ip4_nis_servers = NULL;
|
||||
struct in_addr temp_addr;
|
||||
nm_completion_args args;
|
||||
|
||||
|
|
@ -509,6 +512,8 @@ NMIP4Config * nm_dhcp_manager_get_ip4_config (NMDHCPManager *manager, NMActReque
|
|||
|
||||
get_ip4_uint32s (manager, dev, "domain_name_servers", &ip4_nameservers, &num_ip4_nameservers);
|
||||
get_ip4_string (manager, dev, "domain_name", &domain_names);
|
||||
get_ip4_string (manager, dev, "nis_domain", &nis_domain);
|
||||
get_ip4_uint32s (manager, dev, "nis_servers", &ip4_nis_servers, &num_ip4_nis_servers);
|
||||
|
||||
nm_info ("Retrieved the following IP4 configuration from the DHCP daemon:");
|
||||
|
||||
|
|
@ -549,6 +554,21 @@ NMIP4Config * nm_dhcp_manager_get_ip4_config (NMDHCPManager *manager, NMActReque
|
|||
g_strfreev (searches);
|
||||
}
|
||||
|
||||
if (nis_domain) {
|
||||
nm_ip4_config_set_nis_domain( ip4_config, nis_domain);
|
||||
nm_info (" nis domain '%s'", nis_domain);
|
||||
}
|
||||
|
||||
for (i = 0; i < num_ip4_nis_servers; i++)
|
||||
{
|
||||
nm_ip4_config_add_nis_server (ip4_config, ip4_nis_servers[i]);
|
||||
temp_addr.s_addr = ip4_nis_servers[i];
|
||||
nm_info (" nis server %s", inet_ntoa (temp_addr));
|
||||
}
|
||||
|
||||
nm_info("nis_servers = %d", nm_ip4_config_get_num_nis_servers(ip4_config));
|
||||
nm_info("nis domain = %s", nm_ip4_config_get_nis_domain(ip4_config));
|
||||
|
||||
out:
|
||||
return ip4_config;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ struct NMIP4Config
|
|||
GSList * nameservers;
|
||||
GSList * domains;
|
||||
|
||||
gchar * nis_domain;
|
||||
GSList * nis_servers;
|
||||
|
||||
/* If this is a VPN/etc config that requires
|
||||
* another device (like Ethernet) to already have
|
||||
* an IP4Config before it can be used.
|
||||
|
|
@ -74,6 +77,8 @@ NMIP4Config *nm_ip4_config_copy (NMIP4Config *src_config)
|
|||
dst_config->ip4_netmask = nm_ip4_config_get_netmask (src_config);
|
||||
dst_config->ip4_broadcast = nm_ip4_config_get_broadcast (src_config);
|
||||
|
||||
dst_config->nis_domain = g_strdup(nm_ip4_config_get_nis_domain(src_config));
|
||||
|
||||
len = nm_ip4_config_get_num_nameservers (src_config);
|
||||
for (i = 0; i < len; i++)
|
||||
nm_ip4_config_add_nameserver (dst_config, nm_ip4_config_get_nameserver (src_config, i));
|
||||
|
|
@ -82,6 +87,10 @@ NMIP4Config *nm_ip4_config_copy (NMIP4Config *src_config)
|
|||
for (i = 0; i < len; i++)
|
||||
nm_ip4_config_add_domain (dst_config, nm_ip4_config_get_domain (src_config, i));
|
||||
|
||||
len = nm_ip4_config_get_num_nis_servers (src_config);
|
||||
for (i = 0; i < len; i++)
|
||||
nm_ip4_config_add_nis_server (dst_config, nm_ip4_config_get_nis_server (src_config, i));
|
||||
|
||||
return dst_config;
|
||||
}
|
||||
|
||||
|
|
@ -99,9 +108,11 @@ void nm_ip4_config_unref (NMIP4Config *config)
|
|||
config->refcount--;
|
||||
if (config->refcount <= 0)
|
||||
{
|
||||
g_free (config->nis_domain);
|
||||
g_slist_free (config->nameservers);
|
||||
g_slist_foreach (config->domains, (GFunc) g_free, NULL);
|
||||
g_slist_free (config->domains);
|
||||
g_slist_free (config->nis_servers);
|
||||
|
||||
memset (config, 0, sizeof (NMIP4Config));
|
||||
g_free (config);
|
||||
|
|
@ -204,6 +215,32 @@ guint32 nm_ip4_config_get_num_nameservers (NMIP4Config *config)
|
|||
return (g_slist_length (config->nameservers));
|
||||
}
|
||||
|
||||
void nm_ip4_config_add_nis_server (NMIP4Config *config, guint32 nis_server)
|
||||
{
|
||||
g_return_if_fail (config != NULL);
|
||||
|
||||
config->nis_servers = g_slist_append (config->nis_servers, GINT_TO_POINTER (nis_server));
|
||||
}
|
||||
|
||||
guint32 nm_ip4_config_get_nis_server (NMIP4Config *config, guint index)
|
||||
{
|
||||
guint nis_server;
|
||||
|
||||
g_return_val_if_fail (config != NULL, 0);
|
||||
g_return_val_if_fail (index < g_slist_length (config->nis_servers), 0);
|
||||
|
||||
if ((nis_server = GPOINTER_TO_UINT (g_slist_nth_data (config->nis_servers, index))))
|
||||
return nis_server;
|
||||
return 0;
|
||||
}
|
||||
|
||||
guint32 nm_ip4_config_get_num_nis_servers (NMIP4Config *config)
|
||||
{
|
||||
g_return_val_if_fail (config != NULL, 0);
|
||||
|
||||
return (g_slist_length (config->nis_servers));
|
||||
}
|
||||
|
||||
void nm_ip4_config_add_domain (NMIP4Config *config, const char *domain)
|
||||
{
|
||||
g_return_if_fail (config != NULL);
|
||||
|
|
@ -215,6 +252,23 @@ void nm_ip4_config_add_domain (NMIP4Config *config, const char *domain)
|
|||
config->domains = g_slist_append (config->domains, g_strdup (domain));
|
||||
}
|
||||
|
||||
void nm_ip4_config_set_nis_domain (NMIP4Config *config, const char *domain)
|
||||
{
|
||||
g_return_if_fail (config != NULL);
|
||||
g_return_if_fail (domain != NULL);
|
||||
|
||||
if (!strlen (domain))
|
||||
return;
|
||||
|
||||
config->nis_domain = g_strdup(domain);
|
||||
}
|
||||
|
||||
gchar *nm_ip4_config_get_nis_domain (NMIP4Config *config)
|
||||
{
|
||||
g_return_val_if_fail( config != NULL, NULL);
|
||||
return config->nis_domain;
|
||||
}
|
||||
|
||||
const char *nm_ip4_config_get_domain (NMIP4Config *config, guint index)
|
||||
{
|
||||
const char *domain;
|
||||
|
|
|
|||
|
|
@ -51,6 +51,13 @@ void nm_ip4_config_add_nameserver (NMIP4Config *config, guint32 nameserver);
|
|||
guint32 nm_ip4_config_get_nameserver (NMIP4Config *config, guint index);
|
||||
guint32 nm_ip4_config_get_num_nameservers (NMIP4Config *config);
|
||||
|
||||
void nm_ip4_config_add_nis_server (NMIP4Config *config, guint32 nis_server);
|
||||
guint32 nm_ip4_config_get_nis_server (NMIP4Config *config, guint index);
|
||||
guint32 nm_ip4_config_get_num_nis_servers (NMIP4Config *config);
|
||||
|
||||
void nm_ip4_config_set_nis_domain (NMIP4Config *config, const char *domain);
|
||||
gchar *nm_ip4_config_get_nis_domain (NMIP4Config *config);
|
||||
|
||||
void nm_ip4_config_add_domain (NMIP4Config *config, const char *domain);
|
||||
const char * nm_ip4_config_get_domain (NMIP4Config *config, guint index);
|
||||
guint32 nm_ip4_config_get_num_domains (NMIP4Config *config);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue