diff --git a/ip/ipaddress.c b/ip/ipaddress.c index 4d993243..221ae1fc 100644 --- a/ip/ipaddress.c +++ b/ip/ipaddress.c @@ -604,7 +604,7 @@ int print_linkinfo(const struct sockaddr_nl *who, if (filter.showqueue) print_queuelen(fp, tb); - if (!filter.family || filter.family == AF_PACKET) { + if (!filter.family || filter.family == AF_PACKET || show_details) { SPRINT_BUF(b1); fprintf(fp, "%s", _SL_); fprintf(fp, " link/%s ", ll_type_n2a(ifi->ifi_type, b1, sizeof(b1))); @@ -627,14 +627,14 @@ int print_linkinfo(const struct sockaddr_nl *who, } } - if (do_link && tb[IFLA_PROMISCUITY] && show_details) + if (tb[IFLA_PROMISCUITY] && show_details) fprintf(fp, " promiscuity %u ", *(int*)RTA_DATA(tb[IFLA_PROMISCUITY])); - if (do_link && tb[IFLA_LINKINFO] && show_details) + if (tb[IFLA_LINKINFO] && show_details) print_linktype(fp, tb[IFLA_LINKINFO]); - if (do_link && tb[IFLA_IFALIAS]) { + if ((do_link || show_details) && tb[IFLA_IFALIAS]) { fprintf(fp, "%s alias %s", _SL_, rta_getattr_str(tb[IFLA_IFALIAS])); } @@ -644,7 +644,7 @@ int print_linkinfo(const struct sockaddr_nl *who, __print_link_stats(fp, tb); } - if (do_link && tb[IFLA_VFINFO_LIST] && tb[IFLA_NUM_VF]) { + if ((do_link || show_details) && tb[IFLA_VFINFO_LIST] && tb[IFLA_NUM_VF]) { struct rtattr *i, *vflist = tb[IFLA_VFINFO_LIST]; int rem = RTA_PAYLOAD(vflist); for (i = RTA_DATA(vflist); RTA_OK(i, rem); i = RTA_NEXT(i, rem))