From aa648cf84b3a324c6abe21bb0ff06bbb77c987c4 Mon Sep 17 00:00:00 2001 From: Julian Elischer Date: Tue, 13 Aug 1996 22:20:20 +0000 Subject: [PATCH] Submitted by: Archie@whistle.com if making a interface route, and it's a P2P link, then also automatically lable it as an llinfo entry so that gated and friends don't clobber it.. --- sbin/route/keywords | 1 + sbin/route/route.8 | 7 +++++-- sbin/route/route.c | 8 +++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sbin/route/keywords b/sbin/route/keywords index b031a9eb66c9..07a0ddcbd095 100644 --- a/sbin/route/keywords +++ b/sbin/route/keywords @@ -21,6 +21,7 @@ ifp inet iso link +llinfo lock lockrest mask diff --git a/sbin/route/route.8 b/sbin/route/route.8 index be13a700835b..3a9ccc0c45f0 100644 --- a/sbin/route/route.8 +++ b/sbin/route/route.8 @@ -177,8 +177,11 @@ no intermediary system to act as a gateway, the modifier should be specified; the gateway given is the address of this host on the common network, indicating the interface to be used for transmission. -If the interface point to point, the name of the interface -itself may be given instead. +Alternately, if the interface is point to point the name of the interface +itself may be given, in which case the route remains valid even +if the local or remote addresses change. This forces the +.Fl llinfo +flag. .Pp The optional modifiers .Fl xns , diff --git a/sbin/route/route.c b/sbin/route/route.c index a823569e813f..6acb279f63bf 100644 --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -43,7 +43,7 @@ static const char copyright[] = static char sccsid[] = "@(#)route.c 8.3 (Berkeley) 3/19/94"; */ static const char rcsid[] = - "$Id: route.c,v 1.11 1996/07/23 22:00:14 julian Exp $"; + "$Id: route.c,v 1.12 1996/08/09 22:52:02 julian Exp $"; #endif /* not lint */ #include @@ -111,6 +111,7 @@ int s; int forcehost, forcenet, doflush, nflag, af, qflag, tflag, keyword(); int iflag, verbose, aflen = sizeof (struct sockaddr_in); int locking, lockrest, debugonly; +int extra_flags; struct rt_metrics rt_metrics; u_long rtm_inits; struct in_addr inet_makeaddr(); @@ -596,6 +597,9 @@ newroute(argc, argv) case K_NOSTATIC: flags &= ~RTF_STATIC; break; + case K_LLINFO: + flags |= RTF_LLINFO; + break; case K_LOCK: locking = 1; break; @@ -704,6 +708,7 @@ newroute(argc, argv) if (forcenet) ishost = 0; flags |= RTF_UP; + flags |= extra_flags; if (ishost) flags |= RTF_HOST; if (iflag == 0) @@ -866,6 +871,7 @@ getaddr(which, s, hpp) /* If we found it, then use it */ if (sdl) { su->sdl = *sdl; + extra_flags |= RTF_LLINFO; return(1); } }