core: add nm_config_data_get_device_config() helper to lookup by match-data

This commit is contained in:
Thomas Haller 2023-06-12 13:37:08 +02:00
parent ac7b6e532f
commit 97d6b7e92a
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728
2 changed files with 35 additions and 6 deletions

View file

@ -1546,11 +1546,12 @@ out:
return NULL;
}
const char *
nm_config_data_get_device_config_by_device(const NMConfigData *self,
const char *property,
NMDevice *device,
gboolean *has_match)
static const char *
_config_data_get_device_config(const NMConfigData *self,
const char *property,
const NMMatchSpecDeviceData *match_data,
NMDevice *device,
gboolean *has_match)
{
const NMConfigDataPrivate *priv;
const MatchSectionInfo *connection_info;
@ -1561,18 +1562,39 @@ nm_config_data_get_device_config_by_device(const NMConfigData *self,
g_return_val_if_fail(self, NULL);
g_return_val_if_fail(property && *property, NULL);
nm_assert(!match_data || !device);
nm_assert(!device || NM_IS_DEVICE(device));
priv = NM_CONFIG_DATA_GET_PRIVATE(self);
connection_info = _match_section_infos_lookup(&priv->device_infos[0],
priv->keyfile,
property,
NULL,
match_data,
device,
&value);
NM_SET_OUT(has_match, !!connection_info);
return value;
}
const char *
nm_config_data_get_device_config(const NMConfigData *self,
const char *property,
const NMMatchSpecDeviceData *match_data,
gboolean *has_match)
{
return _config_data_get_device_config(self, property, match_data, NULL, has_match);
}
const char *
nm_config_data_get_device_config_by_device(const NMConfigData *self,
const char *property,
NMDevice *device,
gboolean *has_match)
{
return _config_data_get_device_config(self, property, NULL, device, has_match);
}
const char *
nm_config_data_get_device_config_by_pllink(const NMConfigData *self,
const char *property,

View file

@ -219,6 +219,13 @@ gint64 nm_config_data_get_connection_default_int64(const NMConfigData *self,
gint64 max,
gint64 fallback);
struct _NMMatchSpecDeviceData;
const char *nm_config_data_get_device_config(const NMConfigData *self,
const char *property,
const struct _NMMatchSpecDeviceData *match_data,
gboolean *has_match);
const char *nm_config_data_get_device_config_by_device(const NMConfigData *self,
const char *property,
NMDevice *device,