platform: print more fields in nm_platform_link_to_string()

This commit is contained in:
Thomas Haller
2015-05-05 01:25:19 +02:00
parent 655a0e71d4
commit c34598fa23

View File

@@ -2442,27 +2442,30 @@ nm_platform_link_to_string (const NMPlatformLink *link)
{ {
char master[20]; char master[20];
char parent[20]; char parent[20];
char str_flags[64];
char *driver, *udi;
char str_vlan[16]; char str_vlan[16];
GString *str; GString *str_flags;
char str_addrmode[30];
gs_free char *str_addr = NULL;
gs_free char *str_inet6_token = NULL;
if (!link) if (!link)
return "(unknown link)"; return "(unknown link)";
str = g_string_new (NULL); str_flags = g_string_new (NULL);
if (!link->arp) if (!link->arp)
g_string_append (str, "NOARP,"); g_string_append (str_flags, "NOARP,");
if (link->up) if (link->up)
g_string_append (str, "UP"); g_string_append (str_flags, "UP");
else else
g_string_append (str, "DOWN"); g_string_append (str_flags, "DOWN");
if (link->connected) if (link->connected)
g_string_append (str, ",LOWER_UP"); g_string_append (str_flags, ",LOWER_UP");
if (link->flags) { if (link->flags) {
rtnl_link_flags2str (link->flags, str_flags, sizeof (str_flags)); char str_flags_buf[64];
g_string_append_printf (str, ";%s", str_flags);
rtnl_link_flags2str (link->flags, str_flags_buf, sizeof (str_flags_buf));
g_string_append_printf (str_flags, ";%s", str_flags_buf);
} }
if (link->master) if (link->master)
@@ -2480,24 +2483,65 @@ nm_platform_link_to_string (const NMPlatformLink *link)
else else
str_vlan[0] = '\0'; str_vlan[0] = '\0';
driver = link->driver ? g_strdup_printf (" driver '%s'", link->driver) : NULL; if (link->inet6_addr_gen_mode_inv) {
udi = link->udi ? g_strdup_printf (" udi '%s'", link->udi) : NULL; switch ((guint8) ~link->inet6_addr_gen_mode_inv) {
case 0:
g_snprintf (str_addrmode, sizeof (str_addrmode), " addrgenmode eui64");
break;
case 1:
g_snprintf (str_addrmode, sizeof (str_addrmode), " addrgenmode none");
break;
default:
g_snprintf (str_addrmode, sizeof (str_addrmode), " addrgenmode %d", (int) (guint8) (~link->inet6_addr_gen_mode_inv));
break;
}
} else
str_addrmode[0] = '\0';
g_snprintf (_nm_platform_to_string_buffer, sizeof (_nm_platform_to_string_buffer), "%d: %s%s <%s> mtu %d%s " if (link->addr.len)
"%s" /* link->type */ str_addr = nm_utils_hwaddr_ntoa (link->addr.data, MIN (link->addr.len, sizeof (link->addr.data)));
"%s%s" /* kind */ if (link->inet6_token.is_valid)
str_inet6_token = nm_utils_hwaddr_ntoa (&link->inet6_token.iid, sizeof (link->inet6_token.iid));
g_snprintf (_nm_platform_to_string_buffer, sizeof (_nm_platform_to_string_buffer),
"%d: " /* ifindex */
"%s" /* name */
"%s" /* parent */
" <%s>" /* flags */
" mtu %d"
"%s" /* master */
"%s" /* vlan */ "%s" /* vlan */
"%s%s", " arp %u" /* arptype */
link->ifindex, link->name, parent, str->str, "%s%s" /* link->type */
"%s%s" /* kind */
"%s" /* is-in-udev */
"%s" /* addr-gen-mode */
"%s%s" /* addr */
"%s%s" /* inet6_token */
"%s%s" /* driver */
"%s%s", /* udi */
link->ifindex,
link->name,
parent,
str_flags->str,
link->mtu, master, link->mtu, master,
nm_link_type_to_string (link->type),
link->type != NM_LINK_TYPE_UNKNOWN && link->kind ? " kind " : "",
link->type != NM_LINK_TYPE_UNKNOWN && link->kind ? link->kind : "",
str_vlan, str_vlan,
driver ? driver : "", udi ? udi : ""); link->arptype,
g_string_free (str, TRUE); nm_link_type_to_string (link->type) ? " " : "",
g_free (driver); str_if_set (nm_link_type_to_string (link->type), "???"),
g_free (udi); link->kind ? (g_strcmp0 (nm_link_type_to_string (link->type), link->kind) ? "/" : "*") : "",
link->kind && g_strcmp0 (nm_link_type_to_string (link->type), link->kind) ? link->kind : "",
link->initialized ? " init" : " not-init",
str_addrmode,
str_addr ? " addr " : "",
str_addr ? str_addr : "",
str_inet6_token ? " inet6token " : "",
str_inet6_token ? str_inet6_token : "",
link->driver ? " driver " : "",
link->driver ? link->driver : "",
link->udi ? " udi " : "",
link->udi ? link->udi : "");
g_string_free (str_flags, TRUE);
return _nm_platform_to_string_buffer; return _nm_platform_to_string_buffer;
} }