2005-02-14 Colin Walters <walters@verbum.org>
* src/NetworkManagerMain.h (NMData): Handle multiple domain searches. * src/NetworkManagerDHCP.c (set_domain_searches): Handle space-separated list of domains to search. git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@448 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
@@ -81,31 +81,45 @@ static void set_nameservers (NMDevice *dev, void *data, int len)
|
||||
}
|
||||
}
|
||||
|
||||
static void set_domain_search (NMDevice *dev, const char *domain)
|
||||
static void set_domain_searches (NMDevice *dev, const char *searches_str)
|
||||
{
|
||||
GError *error = NULL;
|
||||
guint id;
|
||||
GList *elt;
|
||||
char **searches;
|
||||
|
||||
if (dev->app_data->domain_search_id
|
||||
&& !nm_named_manager_remove_domain_search (dev->app_data->named,
|
||||
dev->app_data->domain_search_id,
|
||||
/* Reset our domain search list */
|
||||
for (elt = dev->app_data->domain_search_ids; elt; elt = elt->next)
|
||||
{
|
||||
if (!nm_named_manager_remove_domain_search (dev->app_data->named,
|
||||
GPOINTER_TO_UINT (elt->data),
|
||||
&error))
|
||||
{
|
||||
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Couldn't remove domain search: %s\n", error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
}
|
||||
g_list_free (dev->app_data->domain_search_ids);
|
||||
dev->app_data->domain_search_ids = NULL;
|
||||
|
||||
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Adding domain search: %s\n", domain);
|
||||
searches = g_strsplit (searches_str, " ", 0);
|
||||
|
||||
for (; *searches; searches++)
|
||||
{
|
||||
const char *search_elt = *searches;
|
||||
guint id;
|
||||
|
||||
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Adding domain search: %s\n", search_elt);
|
||||
if ((id = nm_named_manager_add_domain_search (dev->app_data->named,
|
||||
domain,
|
||||
search_elt,
|
||||
&error)))
|
||||
dev->app_data->domain_search_id = id;
|
||||
dev->app_data->domain_search_ids = g_list_append (dev->app_data->domain_search_ids, GUINT_TO_POINTER (id));
|
||||
else
|
||||
{
|
||||
dev->app_data->domain_search_id = 0;
|
||||
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Couldn't add domain search: %s\n", error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
}
|
||||
g_strfreev (searches);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -42,7 +42,7 @@ typedef struct NMData
|
||||
|
||||
NMNamedManager *named;
|
||||
GList *nameserver_ids; /* For now these are global instead of per-device */
|
||||
guint domain_search_id;
|
||||
GList *domain_search_ids;
|
||||
|
||||
DBusConnection *dbus_connection;
|
||||
NMDbusMethodList *nm_methods;
|
||||
|
Reference in New Issue
Block a user