about summary refs log tree commit diff
path: root/src/libnmc-setting/nm-meta-setting-access.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2026-07-03 19:53:23 +0200
committerMichael Biebl <biebl@debian.org>2026-07-03 19:53:23 +0200
commitaa308069bebf2d5a3200728caa69a76137c03d8b (patch)
treec0ba2281e801c4720a0d8a5e5ee943688234f088 /src/libnmc-setting/nm-meta-setting-access.c
parent0a4b2c29da4ccf259bbcea3298d15abebb94348f (diff)
parent537bfce2bda471c92caabd388589230200891509 (diff)
Update upstream source from tag 'upstream/1.58_rc1'
Update to upstream version '1.58~rc1'
with Debian dir 451489c9234e2b6b7c2f41ca6670287ea3ac3efd
Diffstat (limited to 'src/libnmc-setting/nm-meta-setting-access.c')
-rw-r--r--src/libnmc-setting/nm-meta-setting-access.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/libnmc-setting/nm-meta-setting-access.c b/src/libnmc-setting/nm-meta-setting-access.c
index 14857048..bda1cd5c 100644
--- a/src/libnmc-setting/nm-meta-setting-access.c
+++ b/src/libnmc-setting/nm-meta-setting-access.c
@@ -191,6 +191,17 @@ nm_meta_abstract_info_get_name(const NMMetaAbstractInfo *abstract_info, gboolean
     return n;
 }
 
+const char *
+nm_meta_abstract_info_get_alias(const NMMetaAbstractInfo *abstract_info)
+{
+    nm_assert(abstract_info);
+    nm_assert(abstract_info->meta_type);
+
+    if (abstract_info->meta_type->get_alias)
+        return abstract_info->meta_type->get_alias(abstract_info);
+    return NULL;
+}
+
 const NMMetaAbstractInfo *const *
 nm_meta_abstract_info_get_nested(const NMMetaAbstractInfo *abstract_info,
                                  guint                    *out_len,
@@ -466,10 +477,15 @@ _output_selection_select_one(const NMMetaAbstractInfo *const *fields_array,
 
     for (i = 0; fields_array[i]; i++) {
         const NMMetaAbstractInfo        *fi = fields_array[i];
+        const char                      *name, *alias;
         const NMMetaAbstractInfo *const *nested;
         gs_free gpointer                 nested_to_free = NULL;
 
-        if (g_ascii_strcasecmp(i_name, nm_meta_abstract_info_get_name(fi, FALSE)) != 0)
+        name  = nm_meta_abstract_info_get_name(fi, FALSE);
+        alias = nm_meta_abstract_info_get_alias(fi);
+
+        if (g_ascii_strcasecmp(i_name, name) != 0
+            && (alias == NULL || g_ascii_strcasecmp(i_name, alias) != 0))
             continue;
 
         if (!right || !validate_nested) {
@@ -480,8 +496,11 @@ _output_selection_select_one(const NMMetaAbstractInfo *const *fields_array,
         nested = nm_meta_abstract_info_get_nested(fi, NULL, &nested_to_free);
         if (nested) {
             for (j = 0; nested[j]; nested++) {
-                if (g_ascii_strcasecmp(right, nm_meta_abstract_info_get_name(nested[j], FALSE))
-                    == 0) {
+                name  = nm_meta_abstract_info_get_name(nested[j], FALSE);
+                alias = nm_meta_abstract_info_get_alias(nested[j]);
+
+                if (g_ascii_strcasecmp(right, name) == 0
+                    || (alias && g_ascii_strcasecmp(right, alias) == 0)) {
                     found = TRUE;
                     break;
                 }