NetworkManager r4298 - in trunk: . libnm-glib libnm-util src system-settings/plugins/ifcfg-suse system-settings/plugins/keyfile
- From: dcbw svn gnome org
- To: svn-commits-list gnome org
- Subject: NetworkManager r4298 - in trunk: . libnm-glib libnm-util src system-settings/plugins/ifcfg-suse system-settings/plugins/keyfile
- Date: Wed, 19 Nov 2008 15:09:05 +0000 (UTC)
Author: dcbw
Date: Wed Nov 19 15:09:05 2008
New Revision: 4298
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=4298&view=rev
Log:
2008-11-19 Dan Williams <dcbw redhat com>
* libnm-util/nm-connection.c
libnm-util/nm-connection.h
- (nm_connection_replace_settings): take a GError
* libnm-glib/nm-settings.c
libnm-glib/nm-dbus-connection.c
src/nm-manager.c
system-settings/plugins/ifcfg-suse/nm-suse-connection.c
system-settings/plugins/keyfile/nm-keyfile-connection.c
system-settings/plugins/keyfile/plugin.c
- Handle, or don't handle, errors from nm_connection_replace_settings()
Modified:
trunk/ChangeLog
trunk/libnm-glib/nm-dbus-connection.c
trunk/libnm-glib/nm-settings.c
trunk/libnm-util/nm-connection.c
trunk/libnm-util/nm-connection.h
trunk/src/nm-manager.c
trunk/system-settings/plugins/ifcfg-suse/nm-suse-connection.c
trunk/system-settings/plugins/keyfile/nm-keyfile-connection.c
trunk/system-settings/plugins/keyfile/plugin.c
Modified: trunk/libnm-glib/nm-dbus-connection.c
==============================================================================
--- trunk/libnm-glib/nm-dbus-connection.c (original)
+++ trunk/libnm-glib/nm-dbus-connection.c Wed Nov 19 15:09:05 2008
@@ -94,12 +94,20 @@
{
NMExportedConnection *exported = NM_EXPORTED_CONNECTION (user_data);
NMConnection *wrapped;
+ GError *error = NULL;
wrapped = nm_exported_connection_get_connection (exported);
- if (nm_connection_replace_settings (wrapped, settings))
+ if (nm_connection_replace_settings (wrapped, settings, &error))
nm_exported_connection_signal_updated (exported, settings);
- else
+ else {
+ g_warning ("%s: '%s' / '%s' invalid: %d",
+ __func__,
+ error ? g_type_name (nm_connection_lookup_setting_type_by_quark (error->domain)) : "(none)",
+ (error && error->message) ? error->message : "(none)",
+ error ? error->code : -1);
+ g_clear_error (&error);
nm_exported_connection_signal_removed (exported);
+ }
}
static void
Modified: trunk/libnm-glib/nm-settings.c
==============================================================================
--- trunk/libnm-glib/nm-settings.c (original)
+++ trunk/libnm-glib/nm-settings.c Wed Nov 19 15:09:05 2008
@@ -524,6 +524,7 @@
GError **err)
{
gboolean success = TRUE;
+ GError *error = NULL;
g_return_val_if_fail (NM_IS_EXPORTED_CONNECTION (connection), FALSE);
g_return_val_if_fail (new_settings != NULL, FALSE);
@@ -532,8 +533,16 @@
success = EXPORTED_CONNECTION_CLASS (connection)->update (connection, new_settings, err);
if (success) {
- nm_connection_replace_settings (NM_EXPORTED_CONNECTION_GET_PRIVATE (connection)->wrapped, new_settings);
- nm_exported_connection_signal_updated (connection, new_settings);
+ if (!nm_connection_replace_settings (NM_EXPORTED_CONNECTION_GET_PRIVATE (connection)->wrapped, new_settings, &error)) {
+ g_warning ("%s: '%s' / '%s' invalid: %d",
+ __func__,
+ error ? g_type_name (nm_connection_lookup_setting_type_by_quark (error->domain)) : "(none)",
+ (error && error->message) ? error->message : "(none)",
+ error ? error->code : -1);
+ g_clear_error (&error);
+ success = FALSE;
+ } else
+ nm_exported_connection_signal_updated (connection, new_settings);
}
return success;
Modified: trunk/libnm-util/nm-connection.c
==============================================================================
--- trunk/libnm-util/nm-connection.c (original)
+++ trunk/libnm-util/nm-connection.c Wed Nov 19 15:09:05 2008
@@ -347,29 +347,30 @@
return type ? nm_connection_get_setting (connection, type) : NULL;
}
+/**
+ * nm_connection_replace_settings:
+ * @connection: a #NMConnection
+ * @new_settings: a #GHashTable of settings
+ * @error: location to store error, or %NULL
+ *
+ * Returns: TRUE if the settings were valid and added to the connection, FALSE
+ * if they were not
+ **/
gboolean
nm_connection_replace_settings (NMConnection *connection,
- GHashTable *new_settings)
+ GHashTable *new_settings,
+ GError **error)
{
- GError *error = NULL;
-
+ g_return_val_if_fail (connection != NULL, FALSE);
g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
g_return_val_if_fail (new_settings != NULL, FALSE);
+ if (error)
+ g_return_val_if_fail (*error == NULL, FALSE);
g_hash_table_remove_all (NM_CONNECTION_GET_PRIVATE (connection)->settings);
g_hash_table_foreach (new_settings, parse_one_setting, connection);
- if (!nm_connection_verify (connection, &error)) {
- g_warning ("%s: '%s' / '%s' invalid: %d",
- __func__,
- g_type_name (nm_connection_lookup_setting_type_by_quark (error->domain)),
- error->message,
- error->code);
- g_error_free (error);
- return FALSE;
- }
-
- return TRUE;
+ return nm_connection_verify (connection, error);
}
typedef struct {
Modified: trunk/libnm-util/nm-connection.h
==============================================================================
--- trunk/libnm-util/nm-connection.h (original)
+++ trunk/libnm-util/nm-connection.h Wed Nov 19 15:09:05 2008
@@ -92,7 +92,8 @@
const char *name);
gboolean nm_connection_replace_settings (NMConnection *connection,
- GHashTable *new_settings);
+ GHashTable *new_settings,
+ GError **error);
/* Returns TRUE if the connections are the same */
gboolean nm_connection_compare (NMConnection *connection,
Modified: trunk/src/nm-manager.c
==============================================================================
--- trunk/src/nm-manager.c (original)
+++ trunk/src/nm-manager.c Wed Nov 19 15:09:05 2008
@@ -970,7 +970,7 @@
}
g_object_unref (new_connection);
- valid = nm_connection_replace_settings (old_connection, settings);
+ valid = nm_connection_replace_settings (old_connection, settings, NULL);
if (valid) {
g_signal_emit (manager, signals[CONNECTION_UPDATED], 0,
old_connection,
Modified: trunk/system-settings/plugins/ifcfg-suse/nm-suse-connection.c
==============================================================================
--- trunk/system-settings/plugins/ifcfg-suse/nm-suse-connection.c (original)
+++ trunk/system-settings/plugins/ifcfg-suse/nm-suse-connection.c Wed Nov 19 15:09:05 2008
@@ -37,9 +37,20 @@
case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
new_connection = parse_ifcfg (priv->iface, priv->dev_type);
if (new_connection) {
+ GError *error = NULL;
+
new_settings = nm_connection_to_hash (new_connection);
- nm_connection_replace_settings (nm_exported_connection_get_connection (exported), new_settings);
- nm_exported_connection_signal_updated (exported, new_settings);
+ if (nm_connection_replace_settings (nm_exported_connection_get_connection (exported), new_settings, &error))
+ nm_exported_connection_signal_updated (exported, new_settings);
+ else {
+ g_warning ("%s: '%s' / '%s' invalid: %d",
+ __func__,
+ error ? g_type_name (nm_connection_lookup_setting_type_by_quark (error->domain)) : "(none)",
+ (error && error->message) ? error->message : "(none)",
+ error ? error->code : -1);
+ g_clear_error (&error);
+ nm_exported_connection_signal_removed (exported);
+ }
g_hash_table_destroy (new_settings);
g_object_unref (new_connection);
Modified: trunk/system-settings/plugins/keyfile/nm-keyfile-connection.c
==============================================================================
--- trunk/system-settings/plugins/keyfile/nm-keyfile-connection.c (original)
+++ trunk/system-settings/plugins/keyfile/nm-keyfile-connection.c Wed Nov 19 15:09:05 2008
@@ -222,14 +222,16 @@
char *filename = NULL;
connection = nm_exported_connection_get_connection (exported);
- nm_connection_replace_settings (connection, new_settings);
- success = write_connection (connection, &filename, error);
- if (success && filename && strcmp (priv->filename, filename)) {
- /* Update the filename if it changed */
- g_free (priv->filename);
- priv->filename = filename;
- } else
- g_free (filename);
+ success = nm_connection_replace_settings (connection, new_settings, error);
+ if (success) {
+ success = write_connection (connection, &filename, error);
+ if (success && filename && strcmp (priv->filename, filename)) {
+ /* Update the filename if it changed */
+ g_free (priv->filename);
+ priv->filename = filename;
+ } else
+ g_free (filename);
+ }
}
return success;
Modified: trunk/system-settings/plugins/keyfile/plugin.c
==============================================================================
--- trunk/system-settings/plugins/keyfile/plugin.c (original)
+++ trunk/system-settings/plugins/keyfile/plugin.c Wed Nov 19 15:09:05 2008
@@ -133,11 +133,22 @@
{
NMConnection *wrapped;
GHashTable *new_settings;
+ GError *error = NULL;
new_settings = nm_connection_to_hash (nm_exported_connection_get_connection (new));
wrapped = nm_exported_connection_get_connection (orig);
- nm_connection_replace_settings (wrapped, new_settings);
- nm_exported_connection_signal_updated (orig, new_settings);
+ if (nm_connection_replace_settings (wrapped, new_settings, &error))
+ nm_exported_connection_signal_updated (orig, new_settings);
+ else {
+ g_warning ("%s: '%s' / '%s' invalid: %d",
+ __func__,
+ error ? g_type_name (nm_connection_lookup_setting_type_by_quark (error->domain)) : "(none)",
+ (error && error->message) ? error->message : "(none)",
+ error ? error->code : -1);
+ g_clear_error (&error);
+ nm_exported_connection_signal_removed (orig);
+ }
+
g_hash_table_destroy (new_settings);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]