From: shemminger Date: Tue, 16 Aug 2005 21:10:51 +0000 (+0000) Subject: Update include files and fix a couple of minor bugs X-Git-Tag: ss-050816~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=660818498d0f5a3f52c05355a3e82c23f670fcc1;p=thirdparty%2Fiproute2.git Update include files and fix a couple of minor bugs --- diff --git a/ChangeLog b/ChangeLog index 708d92b09..70ad266d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-08-16 Stephen Hemminger + + * Limit ip route flush to 10 rounds. + * Cleanup ip rule flush error message + 2005-08-08 Stephen Hemminger * Update to 2.6.13+ kernel headers diff --git a/ip/ipneigh.c b/ip/ipneigh.c index 5346b8bd7..1ba13ac3f 100644 --- a/ip/ipneigh.c +++ b/ip/ipneigh.c @@ -31,6 +31,7 @@ #include "ip_common.h" #define NUD_VALID (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE|NUD_PROBE|NUD_STALE|NUD_DELAY) +#define MAX_ROUNDS 10 static struct { @@ -402,7 +403,7 @@ int do_show_or_flush(int argc, char **argv, int flush) filter.rth = &rth; filter.state &= ~NUD_FAILED; - for (;;) { + while (round < MAX_ROUNDS) { if (rtnl_wilddump_request(&rth, filter.family, RTM_GETNEIGH) < 0) { perror("Cannot send dump request"); exit(1); @@ -428,6 +429,9 @@ int do_show_or_flush(int argc, char **argv, int flush) fflush(stdout); } } + printf("*** Flush not complete bailing out after %d rounds\n", + MAX_ROUNDS); + return 1; } if (rtnl_wilddump_request(&rth, filter.family, RTM_GETNEIGH) < 0) { diff --git a/ip/iprule.c b/ip/iprule.c index 0ad0d3657..9c43011d2 100644 --- a/ip/iprule.c +++ b/ip/iprule.c @@ -340,7 +340,7 @@ static int iprule_flush(int argc, char **argv) af = AF_INET; if (argc > 0) { - fprintf(stderr, "\"ip rule flush\" need not any arguments.\n"); + fprintf(stderr, "\"ip rule flush\" does not allow arguments\n"); return -1; }