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;
|
GError *error = NULL;
|
||||||
guint id;
|
GList *elt;
|
||||||
|
char **searches;
|
||||||
|
|
||||||
if (dev->app_data->domain_search_id
|
/* Reset our domain search list */
|
||||||
&& !nm_named_manager_remove_domain_search (dev->app_data->named,
|
for (elt = dev->app_data->domain_search_ids; elt; elt = elt->next)
|
||||||
dev->app_data->domain_search_id,
|
|
||||||
&error))
|
|
||||||
{
|
{
|
||||||
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Couldn't remove domain search: %s\n", error->message);
|
if (!nm_named_manager_remove_domain_search (dev->app_data->named,
|
||||||
g_clear_error (&error);
|
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);
|
||||||
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Adding domain search: %s\n", domain);
|
dev->app_data->domain_search_ids = NULL;
|
||||||
if ((id = nm_named_manager_add_domain_search (dev->app_data->named,
|
|
||||||
domain,
|
searches = g_strsplit (searches_str, " ", 0);
|
||||||
&error)))
|
|
||||||
dev->app_data->domain_search_id = id;
|
for (; *searches; searches++)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
dev->app_data->domain_search_id = 0;
|
const char *search_elt = *searches;
|
||||||
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Couldn't add domain search: %s\n", error->message);
|
guint id;
|
||||||
g_clear_error (&error);
|
|
||||||
|
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,
|
||||||
|
search_elt,
|
||||||
|
&error)))
|
||||||
|
dev->app_data->domain_search_ids = g_list_append (dev->app_data->domain_search_ids, GUINT_TO_POINTER (id));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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;
|
NMNamedManager *named;
|
||||||
GList *nameserver_ids; /* For now these are global instead of per-device */
|
GList *nameserver_ids; /* For now these are global instead of per-device */
|
||||||
guint domain_search_id;
|
GList *domain_search_ids;
|
||||||
|
|
||||||
DBusConnection *dbus_connection;
|
DBusConnection *dbus_connection;
|
||||||
NMDbusMethodList *nm_methods;
|
NMDbusMethodList *nm_methods;
|
||||||
|
Reference in New Issue
Block a user