From fc57a9df1bee719c86a4f0bc82bafae05bb92fc2 Mon Sep 17 00:00:00 2001 From: shemminger Date: Wed, 7 Sep 2005 17:43:00 +0000 Subject: [PATCH] Fix ip monitor since it is special and can't reuse rtnl_open handle. --- ip/ip.c | 6 ++++++ ip/ipmonitor.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ip/ip.c b/ip/ip.c index c5df825d2..b6ff2df02 100644 --- a/ip/ip.c +++ b/ip/ip.c @@ -53,6 +53,11 @@ static void usage(void) exit(-1); } +static int do_help(int argc, char **argv) +{ + usage(); +} + static const struct cmd { const char *cmd; int (*func)(int argc, char **argv); @@ -66,6 +71,7 @@ static const struct cmd { { "tunnel", do_iptunnel }, { "monitor", do_ipmonitor }, { "xfrm", do_xfrm }, + { "help", do_help }, { 0 } }; diff --git a/ip/ipmonitor.c b/ip/ipmonitor.c index 9f7256370..50b632791 100644 --- a/ip/ipmonitor.c +++ b/ip/ipmonitor.c @@ -95,6 +95,7 @@ int do_ipmonitor(int argc, char **argv) int lroute=0; int lprefix=0; + rtnl_close(&rth); ipaddr_reset_filter(1); iproute_reset_filter(); ipneigh_reset_filter(); @@ -152,12 +153,14 @@ int do_ipmonitor(int argc, char **argv) perror("Cannot fopen"); exit(-1); } - return rtnl_from_file(fp, accept_msg, (void*)stdout); + return rtnl_from_file(fp, accept_msg, stdout); } + if (rtnl_open(&rth, groups) < 0) + exit(1); ll_init_map(&rth); - if (rtnl_listen(&rth, accept_msg, (void*)stdout) < 0) + if (rtnl_listen(&rth, accept_msg, stdout) < 0) exit(2); return 0; -- 2.47.3