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.
This commit is contained in:
Thomas Haller 2019-07-28 14:37:44 +02:00
parent 7e22e5de78
commit c4788e611e

View file

@ -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);