summaryrefslogtreecommitdiffstats
path: root/sys/net/route.c
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1994-11-03 01:04:32 +0000
committerwollman <wollman@FreeBSD.org>1994-11-03 01:04:32 +0000
commitdbb282487cfdec99876b9278e8e6e5c3ac89367b (patch)
treea5eab73d94b9803caa211420ce96525de7ef9ea4 /sys/net/route.c
parenteef1d6f571e148a185540b61e99c44f715f7eee0 (diff)
downloadFreeBSD-src-dbb282487cfdec99876b9278e8e6e5c3ac89367b.zip
FreeBSD-src-dbb282487cfdec99876b9278e8e6e5c3ac89367b.tar.gz
Collapse two fields so that we have space for another 32 flags.
NB: You will have to recompile programs which use the `rt_use' member in order to get the correct values. This should not cause incorrect operation, but the statistics may look a little confusing.
Diffstat (limited to 'sys/net/route.c')
-rw-r--r--sys/net/route.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/net/route.c b/sys/net/route.c
index ad8629f..7e9cffb 100644
--- a/sys/net/route.c
+++ b/sys/net/route.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)route.c 8.2 (Berkeley) 11/15/93
- * $Id: route.c,v 1.9 1994/10/11 23:16:27 wollman Exp $
+ * $Id: route.c,v 1.10 1994/11/02 04:41:25 wollman Exp $
*/
#include <sys/param.h>
@@ -349,6 +349,7 @@ rtrequest(req, dst, gateway, netmask, flags, ret_nrt)
register struct radix_node_head *rnh;
struct ifaddr *ifa;
struct sockaddr *ndst;
+ u_long prflags = 0UL;
#define senderr(x) { error = x ; goto bad; }
if ((rnh = rt_tables[dst->sa_family]) == 0)
@@ -383,6 +384,7 @@ rtrequest(req, dst, gateway, netmask, flags, ret_nrt)
senderr(EINVAL);
ifa = rt->rt_ifa;
flags = rt->rt_flags & ~RTF_CLONING;
+ prflags = rt->rt_prflags | RTPRF_WASCLONED;
gateway = rt->rt_gateway;
if ((netmask = rt->rt_genmask) == 0)
flags |= RTF_HOST;
@@ -405,6 +407,7 @@ rtrequest(req, dst, gateway, netmask, flags, ret_nrt)
senderr(ENOBUFS);
Bzero(rt, sizeof(*rt));
rt->rt_flags = RTF_UP | flags;
+ rt->rt_prflags = prflags;
if (rt_setgate(rt, dst, gateway)) {
Free(rt);
senderr(ENOBUFS);
OpenPOWER on IntegriCloud