diff options
author | Thomas Haller <thaller@redhat.com> | 2019-07-28 14:37:44 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2019-07-29 18:39:49 +0200 |
commit | c4788e611edfa897860494398de394c4a6254d6e (patch) | |
tree | 750ba67e284159451f2fbe25372357f5b6a73df9 | |
parent | 7e22e5de78e91d14d3511098b522e9a42b26f0a2 (diff) | |
download | NetworkManager-c4788e611edfa897860494398de394c4a6254d6e.tar.gz |
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.
-rw-r--r-- | libnm-core/nm-core-internal.h | 7 |
1 files changed, 7 insertions, 0 deletions
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); |