32 lines
817 B
Diff
32 lines
817 B
Diff
|
--- ip/ipmonitor.c
|
||
|
+++ ip/ipmonitor.c
|
||
|
@@ -102,6 +102,7 @@ int do_ipmonitor(int argc, char **argv)
|
||
|
int laddr=0;
|
||
|
int lroute=0;
|
||
|
int lprefix=0;
|
||
|
+ int lneigh=0;
|
||
|
|
||
|
rtnl_close(&rth);
|
||
|
ipaddr_reset_filter(1);
|
||
|
@@ -124,6 +125,9 @@ int do_ipmonitor(int argc, char **argv)
|
||
|
} else if (matches(*argv, "prefix") == 0) {
|
||
|
lprefix=1;
|
||
|
groups = 0;
|
||
|
+ } else if (matches(*argv, "neigh") == 0) {
|
||
|
+ lneigh=1;
|
||
|
+ groups = 0;
|
||
|
} else if (strcmp(*argv, "all") == 0) {
|
||
|
groups = ~RTMGRP_TC;
|
||
|
} else if (matches(*argv, "help") == 0) {
|
||
|
@@ -153,7 +157,9 @@ int do_ipmonitor(int argc, char **argv)
|
||
|
if (!preferred_family || preferred_family == AF_INET6)
|
||
|
groups |= nl_mgrp(RTNLGRP_IPV6_PREFIX);
|
||
|
}
|
||
|
-
|
||
|
+ if (lneigh) {
|
||
|
+ groups |= nl_mgrp(RTNLGRP_NEIGH);
|
||
|
+ }
|
||
|
if (file) {
|
||
|
FILE *fp;
|
||
|
fp = fopen(file, "r");
|