From 999ffea58a0f1d237f8c28dde479c6b42ce2e785 Mon Sep 17 00:00:00 2001 From: Ruslan Ermilov Date: Sat, 25 May 2002 12:51:34 +0000 Subject: [PATCH] Respect -q with "add" and "delete". Document who respects -q. PR: bin/38531 --- sbin/route/route.8 | 6 ++++- sbin/route/route.c | 61 +++++++++++++++++++++++----------------------- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/sbin/route/route.8 b/sbin/route/route.8 index 226517ef2698..069c8d9675a5 100644 --- a/sbin/route/route.8 +++ b/sbin/route/route.8 @@ -73,7 +73,11 @@ to forget this, especially when attempting to repair networking operations). .It Fl v (verbose) Print additional details. .It Fl q -Suppress all output. +Suppress all output from the +.Cm add , delete , +and +.Cm flush +commands. .El .Pp The diff --git a/sbin/route/route.c b/sbin/route/route.c index ba0003330b0a..001dec675323 100644 --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -784,38 +784,39 @@ newroute(argc, argv) } if (*cmd == 'g') exit(0); - oerrno = errno; - (void) printf("%s %s %s", cmd, ishost? "host" : "net", dest); - if (*gateway) { - (void) printf(": gateway %s", gateway); - if (attempts > 1 && ret == 0 && af == AF_INET) - (void) printf(" (%s)", - inet_ntoa(((struct sockaddr_in *)&route.rt_gateway)->sin_addr)); - } - if (ret == 0) { - (void) printf("\n"); - exit(0); - } else { - switch (oerrno) { - case ESRCH: - err = "not in table"; - break; - case EBUSY: - err = "entry in use"; - break; - case ENOBUFS: - err = "routing table overflow"; - break; - case EDQUOT: /* handle recursion avoidance in rt_setgate() */ - err = "gateway uses the same route"; - break; - default: - err = strerror(oerrno); - break; + if (!qflag) { + oerrno = errno; + (void) printf("%s %s %s", cmd, ishost? "host" : "net", dest); + if (*gateway) { + (void) printf(": gateway %s", gateway); + if (attempts > 1 && ret == 0 && af == AF_INET) + (void) printf(" (%s)", + inet_ntoa(((struct sockaddr_in *)&route.rt_gateway)->sin_addr)); + } + if (ret == 0) { + (void) printf("\n"); + } else { + switch (oerrno) { + case ESRCH: + err = "not in table"; + break; + case EBUSY: + err = "entry in use"; + break; + case ENOBUFS: + err = "routing table overflow"; + break; + case EDQUOT: /* handle recursion avoidance in rt_setgate() */ + err = "gateway uses the same route"; + break; + default: + err = strerror(oerrno); + break; + } + (void) printf(": %s\n", err); } - (void) printf(": %s\n", err); - exit(1); } + exit(ret != 0); } void