From 20f791d8fe30dc6906b024c760c7b45954fa8c94 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. --- 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 c597e0526..6f3a1c3e4 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 65e343340..d6d559e6a 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 1638efcd7..87a20bca1 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 47599c3d6..33a999ee8 100644 --- a/src/core/settings/nm-settings-connection.h +++ b/src/core/settings/nm-settings-connection.h @@ -217,6 +217,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); void _nm_settings_connection_set_connection(NMSettingsConnection *self, diff --git a/src/core/settings/nm-settings.c b/src/core/settings/nm-settings.c index 63476c3c9..27adba4db 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 aba3c5654..020623d07 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,