ok?

(benno_route_monitor.diff)

diff --git sbin/route/route.c sbin/route/route.c
index f98bdeae0a2..d4467a77d04 100644
--- sbin/route/route.c
+++ sbin/route/route.c
@@ -150,6 +150,7 @@ main(int argc, char **argv)
        int kw;
        int Terr = 0;
        int af = AF_UNSPEC;
+       u_int rtable_any = RTABLE_ANY;
 
        if (argc < 2)
                usage(NULL);
@@ -231,10 +232,15 @@ main(int argc, char **argv)
        }
 
        /* force socket onto table user requested */
-       if (Tflag == 1 && Terr == 0 &&
-           setsockopt(s, AF_ROUTE, ROUTE_TABLEFILTER,
-           &tableid, sizeof(tableid)) == -1)
-               err(1, "setsockopt(ROUTE_TABLEFILTER)");
+       if (Tflag == 1 && Terr == 0) {
+               if (setsockopt(s, AF_ROUTE, ROUTE_TABLEFILTER,
+                   &tableid, sizeof(tableid)) == -1)
+                       err(1, "setsockopt(ROUTE_TABLEFILTER)");
+       } else {
+               if (setsockopt(s, AF_ROUTE, ROUTE_TABLEFILTER,
+                   &rtable_any, sizeof(tableid)) == -1)
+                       err(1, "setsockopt(ROUTE_TABLEFILTER)");
+       }
 
        if (pledge("stdio dns route", NULL) == -1)
                err(1, "pledge");

Reply via email to