summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-06-12 13:37:08 +0200
committerThomas Haller <thaller@redhat.com>2023-06-14 11:07:34 +0200
commit97d6b7e92a781d5ffc4bc81622d37d2771094ad7 (patch)
treeaf597cac46084b97f0e4cf111f5ae10e2274ca32
parentac7b6e532f966004a6edf65ab603995db06c4184 (diff)
core: add nm_config_data_get_device_config() helper to lookup by match-data
-rw-r--r--src/core/nm-config-data.c34
-rw-r--r--src/core/nm-config-data.h7
2 files changed, 35 insertions, 6 deletions
diff --git a/src/core/nm-config-data.c b/src/core/nm-config-data.c
index c59a3331a2..7b778cc753 100644
--- a/src/core/nm-config-data.c
+++ b/src/core/nm-config-data.c
@@ -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,12 +1562,15 @@ 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);
@@ -1574,6 +1578,24 @@ nm_config_data_get_device_config_by_device(const NMConfigData *self,
}
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,
const NMPlatformLink *pllink,
diff --git a/src/core/nm-config-data.h b/src/core/nm-config-data.h
index 28d9b5c9cb..8ecf926058 100644
--- a/src/core/nm-config-data.h
+++ b/src/core/nm-config-data.h
@@ -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,