From f76cdfee2452deb914b790b3a69add5e8a732364 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 31 Jan 2023 12:15:50 +0100 Subject: [PATCH] core: expose accessors to NMManager in NMSettings, NMSettingsConnection, NMDevice We should avoid using the NM_MANAGER_GET singleton. Everybody already has a manager instance. Expose it and allow to use it. (cherry picked from commit 20f791d8fe30dc6906b024c760c7b45954fa8c94) --- src/core/devices/nm-device-private.h | 4 ---- src/core/devices/nm-device.h | 4 ++++ src/core/settings/nm-settings-connection.c | 16 ++++++++++++++++ src/core/settings/nm-settings-connection.h | 4 ++++ src/core/settings/nm-settings.c | 10 ++++++++++ src/core/settings/nm-settings.h | 2 ++ 6 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/core/devices/nm-device-private.h b/src/core/devices/nm-device-private.h index c597e05260..6f3a1c3e42 100644 --- a/src/core/devices/nm-device-private.h +++ b/src/core/devices/nm-device-private.h @@ -29,10 +29,6 @@ enum NMActStageReturn { #define NM_DEVICE_CAP_INTERNAL_MASK 0xc0000000 -NMSettings *nm_device_get_settings(NMDevice *self); - -NMManager *nm_device_get_manager(NMDevice *self); - gboolean nm_device_set_ip_ifindex(NMDevice *self, int ifindex); gboolean nm_device_set_ip_iface(NMDevice *self, const char *iface); diff --git a/src/core/devices/nm-device.h b/src/core/devices/nm-device.h index bcf4d7b991..a9dc18b19d 100644 --- a/src/core/devices/nm-device.h +++ b/src/core/devices/nm-device.h @@ -421,6 +421,10 @@ typedef struct _NMDeviceClass { const char *(*get_dhcp_anycast_address)(NMDevice *self); } NMDeviceClass; +NMSettings *nm_device_get_settings(NMDevice *self); + +NMManager *nm_device_get_manager(NMDevice *self); + GType nm_device_get_type(void); struct _NMDedupMultiIndex *nm_device_get_multi_index(NMDevice *self); diff --git a/src/core/settings/nm-settings-connection.c b/src/core/settings/nm-settings-connection.c index e4cee20b10..54bea8f713 100644 --- a/src/core/settings/nm-settings-connection.c +++ b/src/core/settings/nm-settings-connection.c @@ -227,6 +227,22 @@ static guint _get_seen_bssids(NMSettingsConnection *self, /*****************************************************************************/ +NMSettings * +nm_settings_connection_get_settings(NMSettingsConnection *self) +{ + g_return_val_if_fail(NM_IS_SETTINGS_CONNECTION(self), NULL); + + return NM_SETTINGS_CONNECTION_GET_PRIVATE(self)->settings; +} + +NMManager * +nm_settings_connection_get_manager(NMSettingsConnection *self) +{ + return nm_settings_get_manager(nm_settings_connection_get_settings(self)); +} + +/*****************************************************************************/ + NMDevice * nm_settings_connection_default_wired_get_device(NMSettingsConnection *self) { diff --git a/src/core/settings/nm-settings-connection.h b/src/core/settings/nm-settings-connection.h index 976f15a98b..b125e22880 100644 --- a/src/core/settings/nm-settings-connection.h +++ b/src/core/settings/nm-settings-connection.h @@ -219,6 +219,10 @@ GType nm_settings_connection_get_type(void); NMSettingsConnection *nm_settings_connection_new(void); +NMSettings *nm_settings_connection_get_settings(NMSettingsConnection *self); + +NMManager *nm_settings_connection_get_manager(NMSettingsConnection *self); + NMConnection *nm_settings_connection_get_connection(NMSettingsConnection *self); gpointer nm_settings_connection_get_setting(NMSettingsConnection *self, NMMetaSettingType meta_type); diff --git a/src/core/settings/nm-settings.c b/src/core/settings/nm-settings.c index 9995b490d2..d286ebca1c 100644 --- a/src/core/settings/nm-settings.c +++ b/src/core/settings/nm-settings.c @@ -451,6 +451,16 @@ static void _startup_complete_check(NMSettings *self, gint64 now_msec); /*****************************************************************************/ +NMManager * +nm_settings_get_manager(NMSettings *self) +{ + g_return_val_if_fail(NM_IS_SETTINGS(self), NULL); + + return NM_SETTINGS_GET_PRIVATE(self)->manager; +} + +/*****************************************************************************/ + static void _emit_connection_added(NMSettings *self, NMSettingsConnection *sett_conn) { diff --git a/src/core/settings/nm-settings.h b/src/core/settings/nm-settings.h index aba3c56545..020623d07d 100644 --- a/src/core/settings/nm-settings.h +++ b/src/core/settings/nm-settings.h @@ -58,6 +58,8 @@ NMSettings *nm_settings_get(void); NMSettings *nm_settings_new(NMManager *manager); +NMManager *nm_settings_get_manager(NMSettings *self); + gboolean nm_settings_start(NMSettings *self, GError **error); typedef void (*NMSettingsAddCallback)(NMSettings *settings,