core: add NMActivationStateFlags "is-master" and "is-slave"
This commit is contained in:
@@ -880,6 +880,8 @@ typedef enum {
|
||||
/**
|
||||
* NMActivationStateFlags:
|
||||
* @NM_ACTIVATION_STATE_FLAG_NONE: an alias for numeric zero, no flags set.
|
||||
* @NM_ACTIVATION_STATE_FLAG_IS_MASTER: the device is a master.
|
||||
* @NM_ACTIVATION_STATE_FLAG_IS_SLAVE: the device is a slave.
|
||||
*
|
||||
* Flags describing the current activation state.
|
||||
*
|
||||
@@ -887,6 +889,9 @@ typedef enum {
|
||||
**/
|
||||
typedef enum { /*< flags >*/
|
||||
NM_ACTIVATION_STATE_FLAG_NONE = 0,
|
||||
|
||||
NM_ACTIVATION_STATE_FLAG_IS_MASTER = (1LL << 0),
|
||||
NM_ACTIVATION_STATE_FLAG_IS_SLAVE = (1LL << 1),
|
||||
} NMActivationStateFlags;
|
||||
|
||||
#endif /* __NM_DBUS_INTERFACE_H__ */
|
||||
|
@@ -148,6 +148,8 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_state_to_string, NMActiveConnectionState,
|
||||
|
||||
NM_UTILS_FLAGS2STR_DEFINE_STATIC (_state_flags_to_string, NMActivationStateFlags,
|
||||
NM_UTILS_FLAGS2STR (NM_ACTIVATION_STATE_FLAG_NONE, "none"),
|
||||
NM_UTILS_FLAGS2STR (NM_ACTIVATION_STATE_FLAG_IS_MASTER, "is-master"),
|
||||
NM_UTILS_FLAGS2STR (NM_ACTIVATION_STATE_FLAG_IS_SLAVE, "is-slave"),
|
||||
);
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -369,6 +371,8 @@ _set_applied_connection_take (NMActiveConnection *self,
|
||||
NMConnection *applied_connection)
|
||||
{
|
||||
NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self);
|
||||
NMSettingConnection *s_con;
|
||||
NMActivationStateFlags flags_val = 0;
|
||||
|
||||
nm_assert (NM_IS_CONNECTION (applied_connection));
|
||||
nm_assert (!priv->applied_connection);
|
||||
@@ -376,6 +380,23 @@ _set_applied_connection_take (NMActiveConnection *self,
|
||||
/* we take ownership of @applied_connection. Ensure to pass in a reference. */
|
||||
priv->applied_connection = applied_connection;
|
||||
nm_connection_clear_secrets (priv->applied_connection);
|
||||
|
||||
/* we determine whether the connection is a master/slave, based solely
|
||||
* on the connection properties itself. */
|
||||
s_con = nm_connection_get_setting_connection (priv->applied_connection);
|
||||
if (nm_setting_connection_get_master (s_con))
|
||||
flags_val |= NM_ACTIVATION_STATE_FLAG_IS_SLAVE;
|
||||
|
||||
if (NM_IN_STRSET (nm_setting_connection_get_connection_type (s_con),
|
||||
NM_SETTING_BOND_SETTING_NAME,
|
||||
NM_SETTING_BRIDGE_SETTING_NAME,
|
||||
NM_SETTING_TEAM_SETTING_NAME))
|
||||
flags_val |= NM_ACTIVATION_STATE_FLAG_IS_MASTER;
|
||||
|
||||
nm_active_connection_set_state_flags_full (self,
|
||||
flags_val,
|
||||
NM_ACTIVATION_STATE_FLAG_IS_MASTER
|
||||
| NM_ACTIVATION_STATE_FLAG_IS_SLAVE);
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user