diff options
author | Jun-ichiro itojun Hagino <itojun@cvs.openbsd.org> | 2000-06-21 18:42:20 +0000 |
---|---|---|
committer | Jun-ichiro itojun Hagino <itojun@cvs.openbsd.org> | 2000-06-21 18:42:20 +0000 |
commit | 0d20db6bf333b04aaa72b23c998bc33aef690186 (patch) | |
tree | 9bd69482f0ba11f1de205652ff1f421bce68e547 /sys | |
parent | f521ba4c3fcf538716842486bbf36ab34288b7cb (diff) |
fix KAME PR 261.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netinet6/raw_ipv6.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/netinet6/raw_ipv6.c b/sys/netinet6/raw_ipv6.c index f99ba9c976d..fbd3649bd0b 100644 --- a/sys/netinet6/raw_ipv6.c +++ b/sys/netinet6/raw_ipv6.c @@ -1,4 +1,4 @@ -/* $OpenBSD: raw_ipv6.c,v 1.23 2000/06/18 19:56:55 itojun Exp $ */ +/* $OpenBSD: raw_ipv6.c,v 1.24 2000/06/21 18:42:19 itojun Exp $ */ /* %%% copyright-nrl-95 @@ -44,7 +44,7 @@ didn't get a copy, you may request one from <license@ipv6.nrl.navy.mil>. * SUCH DAMAGE. * * @(#)raw_ip.c 8.7 (Berkeley) 5/15/95 - * $Id: raw_ipv6.c,v 1.23 2000/06/18 19:56:55 itojun Exp $ + * $Id: raw_ipv6.c,v 1.24 2000/06/21 18:42:19 itojun Exp $ */ #include <sys/param.h> @@ -394,7 +394,7 @@ rip6_output(struct mbuf *m, ...) #if 0 struct ifnet *forceif = NULL; #endif - struct ip6_pktopts opt, *optp = NULL; + struct ip6_pktopts opt, *optp = NULL, *origoptp; struct ifnet *oifp = NULL; va_list ap; struct socket *so; @@ -447,10 +447,13 @@ rip6_output(struct mbuf *m, ...) /* ip6_src will be filled in later */ /* KAME hack: embed scopeid */ + origoptp = inp->inp_outputopts6; + inp->inp_outputopts6 = optp; if (in6_embedscope(&ip6->ip6_dst, dst, inp, &oifp) != 0) { error = EINVAL; goto bad; } + inp->inp_outputopts6 = origoptp; /* source address selection */ in6a = in6_selectsrc(dst, optp, inp->inp_moptions6, &inp->inp_route6, |