Revert "manager: change autoconnect-slaves logic for already active slaves"

The commit breaks many nmstate CI tests. It also breaks the
autoconnect-slaves functionality: if the master gets reactivated and
the slave was active, the slave is not reconnected.

A different solution is needed for the original issue.

This reverts commit 024e983c8e.

(cherry picked from commit 6e02622f57)
(cherry picked from commit 877599c390)
(cherry picked from commit 359f2ef1f2)
This commit is contained in:
Beniamino Galvani 2020-06-15 09:36:41 +02:00
parent 544a67876d
commit 34a02243bc

View file

@ -4926,27 +4926,6 @@ _new_active_connection (NMManager *self,
device);
}
static gboolean
active_connection_master_changed (NMActiveConnection *ac)
{
NMConnection *applied, *connection;
NMSettingsConnection *settings;
NMSettingConnection *s_con1, *s_con2;
applied = nm_active_connection_get_applied_connection (ac);
settings = nm_active_connection_get_settings_connection (ac);
connection = nm_settings_connection_get_connection (settings);
if (applied == connection)
return FALSE;
s_con1 = nm_connection_get_setting_connection (applied);
s_con2 = nm_connection_get_setting_connection (connection);
return !nm_streq0 (nm_setting_connection_get_master (s_con1),
nm_setting_connection_get_master (s_con2));
}
static void
_internal_activation_auth_done (NMManager *self,
NMActiveConnection *active,
@ -4956,7 +4935,6 @@ _internal_activation_auth_done (NMManager *self,
NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
NMActiveConnection *ac;
gs_free_error GError *error = NULL;
NMActivationReason reason;
nm_assert (NM_IS_ACTIVE_CONNECTION (active));
@ -4968,20 +4946,13 @@ _internal_activation_auth_done (NMManager *self,
* We also check this earlier, but there we may fail to detect a duplicate
* if the existing active connection was undergoing authorization.
*/
reason = nm_active_connection_get_activation_reason (active);
if (NM_IN_SET (reason, NM_ACTIVATION_REASON_EXTERNAL,
NM_ACTIVATION_REASON_ASSUME,
NM_ACTIVATION_REASON_AUTOCONNECT,
NM_ACTIVATION_REASON_AUTOCONNECT_SLAVES)) {
if (NM_IN_SET (nm_active_connection_get_activation_reason (active), NM_ACTIVATION_REASON_EXTERNAL,
NM_ACTIVATION_REASON_ASSUME,
NM_ACTIVATION_REASON_AUTOCONNECT)) {
c_list_for_each_entry (ac, &priv->active_connections_lst_head, active_connections_lst) {
if ( nm_active_connection_get_device (ac) == nm_active_connection_get_device (active)
&& nm_active_connection_get_settings_connection (ac) == nm_active_connection_get_settings_connection (active)
&& nm_active_connection_get_state (ac) <= NM_ACTIVE_CONNECTION_STATE_ACTIVATED) {
if ( reason == NM_ACTIVATION_REASON_AUTOCONNECT_SLAVES
&& active_connection_master_changed (ac))
break;
g_set_error (&error,
NM_MANAGER_ERROR,
NM_MANAGER_ERROR_CONNECTION_ALREADY_ACTIVE,