diff options
author | wollman <wollman@FreeBSD.org> | 1994-11-03 01:04:32 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1994-11-03 01:04:32 +0000 |
commit | dbb282487cfdec99876b9278e8e6e5c3ac89367b (patch) | |
tree | a5eab73d94b9803caa211420ce96525de7ef9ea4 /sys/net/route.c | |
parent | eef1d6f571e148a185540b61e99c44f715f7eee0 (diff) | |
download | FreeBSD-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.c | 5 |
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); |