]> git.proxmox.com Git - mirror_iproute2.git/blobdiff - lib/rt_names.c
lib: rt_names: Add rtnl_dsfield_get_name()
[mirror_iproute2.git] / lib / rt_names.c
index ca0680a121502d44a5eee5ea331df9c96efd9cd8..b976471d7979b950945eb1245522b96c8babafe9 100644 (file)
@@ -479,18 +479,30 @@ static void rtnl_rtdsfield_initialize(void)
 
 const char *rtnl_dsfield_n2a(int id, char *buf, int len)
 {
+       const char *name;
+
        if (id < 0 || id >= 256) {
                snprintf(buf, len, "%d", id);
                return buf;
        }
+       if (!numeric) {
+               name = rtnl_dsfield_get_name(id);
+               if (name != NULL)
+                       return name;
+       }
+       snprintf(buf, len, "0x%02x", id);
+       return buf;
+}
+
+const char *rtnl_dsfield_get_name(int id)
+{
+       if (id < 0 || id >= 256)
+               return NULL;
        if (!rtnl_rtdsfield_tab[id]) {
                if (!rtnl_rtdsfield_init)
                        rtnl_rtdsfield_initialize();
        }
-       if (!numeric && rtnl_rtdsfield_tab[id])
-               return rtnl_rtdsfield_tab[id];
-       snprintf(buf, len, "0x%02x", id);
-       return buf;
+       return rtnl_rtdsfield_tab[id];
 }