From: Varun Chandramohan Date: Thu, 12 Mar 2009 08:12:43 +0000 (+0530) Subject: Enable Type Labels For "ip monitor all" X-Git-Tag: v2.6.31~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b6e07d8fde629073a512bf0cb86956c1d55145e;p=thirdparty%2Fiproute2.git Enable Type Labels For "ip monitor all" This patch adds prefix lables for "ip monitor all" command to simplfy understanding of the output. Signed-off-by: Varun Chandramohan --- diff --git a/ip/ipmonitor.c b/ip/ipmonitor.c index a74730e49..baf25a8b9 100644 --- a/ip/ipmonitor.c +++ b/ip/ipmonitor.c @@ -25,6 +25,7 @@ #include "ip_common.h" static void usage(void) __attribute__((noreturn)); +int prefix_banner; static void usage(void) { @@ -42,31 +43,45 @@ int accept_msg(const struct sockaddr_nl *who, print_timestamp(fp); if (n->nlmsg_type == RTM_NEWROUTE || n->nlmsg_type == RTM_DELROUTE) { + if (prefix_banner) + fprintf(fp, "[ROUTE]"); print_route(who, n, arg); return 0; } if (n->nlmsg_type == RTM_NEWLINK || n->nlmsg_type == RTM_DELLINK) { ll_remember_index(who, n, NULL); + if (prefix_banner) + fprintf(fp, "[LINK]"); print_linkinfo(who, n, arg); return 0; } if (n->nlmsg_type == RTM_NEWADDR || n->nlmsg_type == RTM_DELADDR) { + if (prefix_banner) + fprintf(fp, "[ADDR]"); print_addrinfo(who, n, arg); return 0; } if (n->nlmsg_type == RTM_NEWADDRLABEL || n->nlmsg_type == RTM_DELADDRLABEL) { + if (prefix_banner) + fprintf(fp, "[ADDRLABEL]"); print_addrlabel(who, n, arg); return 0; } if (n->nlmsg_type == RTM_NEWNEIGH || n->nlmsg_type == RTM_DELNEIGH) { + if (prefix_banner) + fprintf(fp, "[NEIGH]"); print_neigh(who, n, arg); return 0; } if (n->nlmsg_type == RTM_NEWPREFIX) { + if (prefix_banner) + fprintf(fp, "[PREFIX]"); print_prefix(who, n, arg); return 0; } if (n->nlmsg_type == RTM_NEWRULE || n->nlmsg_type == RTM_DELRULE) { + if (prefix_banner) + fprintf(fp, "[RULE]"); print_rule(who, n, arg); return 0; } @@ -130,6 +145,7 @@ int do_ipmonitor(int argc, char **argv) groups = 0; } else if (strcmp(*argv, "all") == 0) { groups = ~RTMGRP_TC; + prefix_banner=1; } else if (matches(*argv, "help") == 0) { usage(); } else {