summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-05-05 01:25:19 +0200
committerThomas Haller <thaller@redhat.com>2015-05-06 12:33:28 +0200
commite211ddcbe7914a45c63ef9d6ad76fdbb080ccf08 (patch)
tree0db7d652f2909172aa98856f1f8ae52a9e0ad675
parentbd6bb16bd6c5c8c2ab83a1623ca4c56435d666d4 (diff)
downloadNetworkManager-e211ddcbe7914a45c63ef9d6ad76fdbb080ccf08.tar.gz
platform: print more fields in nm_platform_link_to_string()
-rw-r--r--src/platform/nm-platform.c91
1 files changed, 67 insertions, 24 deletions
diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c
index 9bc9684d82..961b368c86 100644
--- a/src/platform/nm-platform.c
+++ b/src/platform/nm-platform.c
@@ -2316,27 +2316,30 @@ nm_platform_link_to_string (const NMPlatformLink *link)
{
char master[20];
char parent[20];
- char str_flags[64];
- char *driver, *udi;
char str_vlan[64];
- GString *str;
+ GString *str_flags;
+ char str_addrmode[30];
+ gs_free char *str_addr = NULL;
+ gs_free char *str_inet6_token = NULL;
if (!link)
return "(unknown link)";
- str = g_string_new (NULL);
+ str_flags = g_string_new (NULL);
if (!link->arp)
- g_string_append (str, "NOARP,");
+ g_string_append (str_flags, "NOARP,");
if (link->up)
- g_string_append (str, "UP");
+ g_string_append (str_flags, "UP");
else
- g_string_append (str, "DOWN");
+ g_string_append (str_flags, "DOWN");
if (link->connected)
- g_string_append (str, ",LOWER_UP");
+ g_string_append (str_flags, ",LOWER_UP");
if (link->flags) {
- rtnl_link_flags2str (link->flags, str_flags, sizeof (str_flags));
- g_string_append_printf (str, ";%s", str_flags);
+ char str_flags_buf[64];
+
+ 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)
@@ -2354,24 +2357,64 @@ nm_platform_link_to_string (const NMPlatformLink *link)
else
str_vlan[0] = '\0';
- driver = link->driver ? g_strdup_printf (" driver '%s'", link->driver) : NULL;
- udi = link->udi ? g_strdup_printf (" udi '%s'", link->udi) : NULL;
-
- g_snprintf (_nm_platform_to_string_buffer, sizeof (_nm_platform_to_string_buffer), "%d: %s%s <%s> mtu %d%s "
+ if (link->inet6_addr_gen_mode_inv) {
+ 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';
+
+ if (link->addr.len)
+ str_addr = nm_utils_hwaddr_ntoa (link->addr.data, MIN (link->addr.len, sizeof (link->addr.data)));
+ 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 */
+ "arp %u " /* arptype */
"%s" /* link->type */
"%s%s" /* kind */
- "%s" /* vlan */
- "%s%s",
- link->ifindex, link->name, parent, str->str,
+ "%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,
- 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,
- driver ? driver : "", udi ? udi : "");
- g_string_free (str, TRUE);
- g_free (driver);
- g_free (udi);
+ link->arptype,
+ nm_link_type_to_string (link->type),
+ link->kind ? (strcmp (nm_link_type_to_string (link->type), link->kind) ? "/" : "*") : "",
+ link->kind && strcmp (nm_link_type_to_string (link->type), link->kind) ? link->kind : "",
+ link->is_in_udev ? " +U" : " -U",
+ 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;
}