static void usage(void) __attribute__((noreturn));
-int prefix_banner;
+static int prefix_banner;
static void usage(void)
{
exit(-1);
}
-static int accept_msg(const struct sockaddr_nl *who,
- struct rtnl_ctrl_data *ctrl,
+static int accept_msg(struct rtnl_ctrl_data *ctrl,
struct nlmsghdr *n, void *arg)
{
FILE *fp = arg;
if (prefix_banner)
fprintf(fp, "[LINK]");
- return print_linkinfo(who, n, arg);
+ return print_linkinfo(n, arg);
case RTM_NEWNEIGH:
case RTM_DELNEIGH:
if (prefix_banner)
fprintf(fp, "[NEIGH]");
- return print_fdb(who, n, arg);
+ return print_fdb(n, arg);
case RTM_NEWMDB:
case RTM_DELMDB:
if (prefix_banner)
fprintf(fp, "[MDB]");
- return print_mdb(who, n, arg);
+ return print_mdb_mon(n, arg);
case NLMSG_TSTAMP:
print_nlmsg_timestamp(fp, n);
int do_monitor(int argc, char **argv)
{
char *file = NULL;
- unsigned groups = ~RTMGRP_TC;
- int llink=0;
- int lneigh=0;
- int lmdb=0;
+ unsigned int groups = ~RTMGRP_TC;
+ int llink = 0;
+ int lneigh = 0;
+ int lmdb = 0;
rtnl_close(&rth);
NEXT_ARG();
file = *argv;
} else if (matches(*argv, "link") == 0) {
- llink=1;
+ llink = 1;
groups = 0;
} else if (matches(*argv, "fdb") == 0) {
lneigh = 1;
groups = 0;
} else if (strcmp(*argv, "all") == 0) {
groups = ~RTMGRP_TC;
- prefix_banner=1;
+ prefix_banner = 1;
} else if (matches(*argv, "help") == 0) {
usage();
} else {
if (file) {
FILE *fp;
int err;
+
fp = fopen(file, "r");
if (fp == NULL) {
perror("Cannot fopen");
return 0;
}
-