diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2015-07-14 16:53:24 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-09-18 17:32:11 +0200 |
commit | 06da3532428e3498c1e808ff8be1af48b540a6ff (patch) | |
tree | 80155896a11d61517bc7cb87df16b3f0ede16f25 /src/nm-active-connection.h | |
parent | c9b3617c35b3380428a1800e8aa6692ee68b4b74 (diff) | |
download | NetworkManager-06da3532428e3498c1e808ff8be1af48b540a6ff.tar.gz |
core: separate active and applied connection
Clone the connection upon activation. This makes it safe for the user
to modify the original connection while it is activated.
This involves several changes:
- NMActiveConnection gets @settings_connection and @applied_connection.
To support add-and-activate, we constructing a NMActiveConnection with
no connection set. Previously, we would set the "connection" field to
a temporary NMConnection. Now NMManager piggybacks this temporary
connection as object-data (TAG_ACTIVE_CONNETION_ADD_AND_ACTIVATE).
- get rid of the functions nm_active_connection_get_connection_type()
and nm_active_connection_get_connection_uuid(). From their names
it is unclear whether this returns the settings or applied connection.
The (few) callers should figure that out themselves.
- rename nm_active_connection_get_id() to
nm_active_connection_get_settings_connection_id(). This function
is only used internally for logging.
- dispatcher calls now get two connections as well. The
applied-connection is used for the connection data, while
the settings-connection is used for the connection path.
- needs special handling for properties that apply immediately
when changed (nm_device_reapply_settings_immediately()).
Co-Authored-By: Thomas Haller <thaller@redhat.com>
https://bugzilla.gnome.org/show_bug.cgi?id=724041
Diffstat (limited to 'src/nm-active-connection.h')
-rw-r--r-- | src/nm-active-connection.h | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/nm-active-connection.h b/src/nm-active-connection.h index ccdc563f06..f57f2081f1 100644 --- a/src/nm-active-connection.h +++ b/src/nm-active-connection.h @@ -49,7 +49,7 @@ #define NM_ACTIVE_CONNECTION_MASTER "master" /* Internal non-exported properties */ -#define NM_ACTIVE_CONNECTION_INT_CONNECTION "int-connection" +#define NM_ACTIVE_CONNECTION_INT_SETTINGS_CONNECTION "int-settings-connection" #define NM_ACTIVE_CONNECTION_INT_DEVICE "int-device" #define NM_ACTIVE_CONNECTION_INT_SUBJECT "int-subject" #define NM_ACTIVE_CONNECTION_INT_MASTER "int-master" @@ -92,20 +92,23 @@ typedef void (*NMActiveConnectionAuthResultFunc) (NMActiveConnection *self, gpointer user_data2); void nm_active_connection_authorize (NMActiveConnection *self, + NMConnection *initial_connection, NMActiveConnectionAuthResultFunc result_func, gpointer user_data1, gpointer user_data2); -NMConnection *nm_active_connection_get_connection (NMActiveConnection *self); +NMSettingsConnection *nm_active_connection_get_settings_connection (NMActiveConnection *self); +NMConnection *nm_active_connection_get_applied_connection (NMActiveConnection *self); -void nm_active_connection_set_connection (NMActiveConnection *self, - NMConnection *connection); +NMSettingsConnection *_nm_active_connection_get_settings_connection (NMActiveConnection *self); -const char * nm_active_connection_get_id (NMActiveConnection *self); +void nm_active_connection_set_settings_connection (NMActiveConnection *self, + NMSettingsConnection *connection); -const char * nm_active_connection_get_uuid (NMActiveConnection *self); +gboolean nm_active_connection_has_unmodified_applied_connection (NMActiveConnection *self, + NMSettingCompareFlags compare_flags); -const char * nm_active_connection_get_connection_type (NMActiveConnection *self); +const char * nm_active_connection_get_settings_connection_id (NMActiveConnection *self); const char * nm_active_connection_get_specific_object (NMActiveConnection *self); @@ -147,4 +150,6 @@ void nm_active_connection_set_assumed (NMActiveConnection *self, gboolean nm_active_connection_get_assumed (NMActiveConnection *self); +void nm_active_connection_clear_secrets (NMActiveConnection *self); + #endif /* __NETWORKMANAGER_ACTIVE_CONNECTION_H__ */ |