From 6e7ea044c12bde01fe8e977b66d8c0fdc8a64418 Mon Sep 17 00:00:00 2001 From: ru Date: Sat, 25 May 2002 12:51:34 +0000 Subject: 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(-) (limited to 'sbin/route') diff --git a/sbin/route/route.8 b/sbin/route/route.8 index 226517e..069c8d9 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 ba00033..001dec6 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 -- cgit v1.1