On 12/10/17(Thu) 00:22, Julien Dhaille wrote:
> Hi,
> 
> when a default gateway is not set :
> 
> # route get 4.4.4.4
> route: writing to routing socket: No such process
> 
> this small patch uses oerrno translation :
> 
> # route get 4.4.4.4
> get host 4.4.4.4: not in table

Nice, but there's no need to set oerrno, the line just below will do it.

Removing the if () block should do it.  It introduces a small change in
behavior, route(8) now exists with an error code if an entry doesn't
exist in the table.  That's a good thing, because one can now test if a
route is reachable by doing:

route -nq get 4.4.4.4 && echo "present"

Index: route.c
===================================================================
RCS file: /cvs/src/sbin/route/route.c,v
retrieving revision 1.203
diff -u -p -r1.203 route.c
--- route.c     6 Sep 2017 20:21:22 -0000       1.203
+++ route.c     16 Oct 2017 11:14:49 -0000
@@ -674,11 +674,6 @@ newroute(int argc, char **argv)
                } else
                        break;
        }
-       if (*cmd == 'g') {
-               if (ret != 0 && qflag == 0)
-                       warn("writing to routing socket");
-               exit(0);
-       }
        oerrno = errno;
        if (!qflag) {
                printf("%s %s %s", cmd, ishost ? "host" : "net", dest);

Reply via email to