From 95ef49b1681f4fe1dd8d85ba83f3f2877ef2fe5e Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Sun, 9 Mar 2008 05:11:22 +0000 Subject: [PATCH] 2008-03-09 Dan Williams Patch from Bas Zoetekouw * src/nm-ip4-config.c src/nm-ip4-config.h - (nm_ip4_config_add_search, nm_ip4_config_get_search, nm_ip4_config_get_num_searches): add 'searches' as distinct from domains. 'searches' is the correct way to store multiple search domains, whereas 'domains' is really just supposed to store one domain. Some sites abuse the DHCP 'domain-name' option to push search domains to the client. - (nm_ip4_config_add_domain): group with related functions (my patch) git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3402 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 14 +++++++++++++ src/nm-ip4-config.c | 48 ++++++++++++++++++++++++++++++++++----------- src/nm-ip4-config.h | 4 ++++ 3 files changed, 55 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index e668dc0f41..3ff9cf9d37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2008-03-09 Dan Williams + + Patch from Bas Zoetekouw + + * src/nm-ip4-config.c + src/nm-ip4-config.h + - (nm_ip4_config_add_search, nm_ip4_config_get_search, + nm_ip4_config_get_num_searches): add 'searches' as distinct from + domains. 'searches' is the correct way to store multiple search + domains, whereas 'domains' is really just supposed to store one + domain. Some sites abuse the DHCP 'domain-name' option to push + search domains to the client. + - (nm_ip4_config_add_domain): group with related functions (my patch) + 2008-03-09 Dan Williams * src/dhcp-manager/nm-dhcp-manager.c diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 6fb7058162..bdd97732ab 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -51,6 +51,7 @@ typedef struct { GArray *nameservers; GPtrArray *domains; + GPtrArray *searches; gchar * hostname; gchar * nis_domain; @@ -251,17 +252,6 @@ guint32 nm_ip4_config_get_num_nis_servers (NMIP4Config *config) return NM_IP4_CONFIG_GET_PRIVATE (config)->nis_servers->len; } -void nm_ip4_config_add_domain (NMIP4Config *config, const char *domain) -{ - g_return_if_fail (NM_IS_IP4_CONFIG (config)); - g_return_if_fail (domain != NULL); - - if (!strlen (domain)) - return; - - g_ptr_array_add (NM_IP4_CONFIG_GET_PRIVATE (config)->domains, g_strdup (domain)); -} - void nm_ip4_config_set_hostname (NMIP4Config *config, const char *hostname) { g_return_if_fail (NM_IS_IP4_CONFIG (config)); @@ -319,6 +309,19 @@ guint32 nm_ip4_config_get_num_static_routes (NMIP4Config *config) return (NM_IP4_CONFIG_GET_PRIVATE (config)->static_routes->len) / 2; } + +void nm_ip4_config_add_domain (NMIP4Config *config, const char *domain) +{ + g_return_if_fail (NM_IS_IP4_CONFIG (config)); + g_return_if_fail (domain != NULL); + g_return_if_fail (strlen (domain) > 0); + + if (!strlen (domain)) + return; + + g_ptr_array_add (NM_IP4_CONFIG_GET_PRIVATE (config)->domains, g_strdup (domain)); +} + const char *nm_ip4_config_get_domain (NMIP4Config *config, guint i) { g_return_val_if_fail (NM_IS_IP4_CONFIG (config), NULL); @@ -333,6 +336,29 @@ guint32 nm_ip4_config_get_num_domains (NMIP4Config *config) return NM_IP4_CONFIG_GET_PRIVATE (config)->domains->len; } +void nm_ip4_config_add_search (NMIP4Config *config, const char *search) +{ + g_return_if_fail (config != NULL); + g_return_if_fail (search != NULL); + g_return_if_fail (strlen (search) > 0); + + g_ptr_array_add (NM_IP4_CONFIG_GET_PRIVATE (config)->searches, g_strdup (search)); +} + +const char *nm_ip4_config_get_search (NMIP4Config *config, guint i) +{ + g_return_val_if_fail (config != NULL, NULL); + + return (const char *) g_ptr_array_index (NM_IP4_CONFIG_GET_PRIVATE (config)->searches, i); +} + +guint32 nm_ip4_config_get_num_searches (NMIP4Config *config) +{ + g_return_val_if_fail (config != NULL, 0); + + return NM_IP4_CONFIG_GET_PRIVATE (config)->searches->len; +} + guint32 nm_ip4_config_get_mtu (NMIP4Config *config) { g_return_val_if_fail (NM_IS_IP4_CONFIG (config), 0); diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h index 4528968e79..720a64948b 100644 --- a/src/nm-ip4-config.h +++ b/src/nm-ip4-config.h @@ -96,6 +96,10 @@ void nm_ip4_config_add_domain (NMIP4Config *config, const char *domain); const char * nm_ip4_config_get_domain (NMIP4Config *config, guint i); guint32 nm_ip4_config_get_num_domains (NMIP4Config *config); +void nm_ip4_config_add_search (NMIP4Config *config, const char *search); +const char * nm_ip4_config_get_search (NMIP4Config *config, guint i); +guint32 nm_ip4_config_get_num_searches (NMIP4Config *config); + guint32 nm_ip4_config_get_mtu (NMIP4Config *config); void nm_ip4_config_set_mtu (NMIP4Config *config, guint32 mtu);