From c4788e611edfa897860494398de394c4a6254d6e Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sun, 28 Jul 2019 14:37:44 +0200 Subject: libnm: add internal _nm_connection_get_setting() accessor nm_connection_get_setting() returns a pointer of type NMSetting. That is very inconvenient, because most callers will need the the result pointer as a setting subtype (like NMSettingConnection). That would be like g_object_new() returning a "GObject *" pointer, which is technically correct but annoying. In the past that problem was avoided by having countless accessors like nm_connection_get_setting_ip4_config(), etc. But that just blows up the API and also is not generic. Meaning: the type is not a function argument but the function itself. That makes composing the code harder as the setting type cannot be treated generically (as a function argument). Anyway. Add an internal wrapper that returns a void pointer. --- libnm-core/nm-core-internal.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h index d263900d1a..868f731214 100644 --- a/libnm-core/nm-core-internal.h +++ b/libnm-core/nm-core-internal.h @@ -476,6 +476,13 @@ gboolean _nm_utils_generate_mac_address_mask_parse (const char *value, /*****************************************************************************/ +static inline gpointer +_nm_connection_get_setting (NMConnection *connection, + GType type) +{ + return (gpointer) nm_connection_get_setting (connection, type); +} + NMSettingIPConfig *nm_connection_get_setting_ip_config (NMConnection *connection, int addr_family); -- cgit v1.2.1