65 lines
1.7 KiB
Diff
65 lines
1.7 KiB
Diff
|
--- ip/ipmonitor.c
|
||
|
+++ 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 {
|