003 File Manager
Current Path:
/usr/src/sys/netinet6
usr
/
src
/
sys
/
netinet6
/
📁
..
📄
dest6.c
(3.71 KB)
📄
frag6.c
(29.96 KB)
📄
icmp6.c
(71.77 KB)
📄
icmp6.h
(138 B)
📄
in6.c
(67.38 KB)
📄
in6.h
(26.73 KB)
📄
in6_cksum.c
(9.99 KB)
📄
in6_fib.c
(9.16 KB)
📄
in6_fib.h
(2.47 KB)
📄
in6_fib_algo.c
(8.91 KB)
📄
in6_gif.c
(12.7 KB)
📄
in6_ifattach.c
(23.41 KB)
📄
in6_ifattach.h
(2.27 KB)
📄
in6_jail.c
(10 KB)
📄
in6_mcast.c
(75.28 KB)
📄
in6_pcb.c
(39.08 KB)
📄
in6_pcb.h
(5.66 KB)
📄
in6_pcbgroup.c
(4.5 KB)
📄
in6_proto.c
(21.14 KB)
📄
in6_rmx.c
(5.33 KB)
📄
in6_rss.c
(11.81 KB)
📄
in6_rss.h
(2.5 KB)
📄
in6_src.c
(34.14 KB)
📄
in6_var.h
(31.63 KB)
📄
ip6.h
(133 B)
📄
ip6_ecn.h
(1.91 KB)
📄
ip6_fastfwd.c
(8.05 KB)
📄
ip6_forward.c
(13.43 KB)
📄
ip6_gre.c
(15.44 KB)
📄
ip6_id.c
(8.28 KB)
📄
ip6_input.c
(45.24 KB)
📄
ip6_mroute.c
(49.15 KB)
📄
ip6_mroute.h
(9.78 KB)
📄
ip6_output.c
(85.71 KB)
📄
ip6_var.h
(16.23 KB)
📄
ip6protosw.h
(4.87 KB)
📄
ip_fw_nat64.h
(7.73 KB)
📄
ip_fw_nptv6.h
(2.09 KB)
📄
mld6.c
(89.28 KB)
📄
mld6.h
(3.84 KB)
📄
mld6_var.h
(6.49 KB)
📄
nd6.c
(67.11 KB)
📄
nd6.h
(15.05 KB)
📄
nd6_nbr.c
(42.37 KB)
📄
nd6_rtr.c
(67.29 KB)
📄
pim6.h
(2.59 KB)
📄
pim6_var.h
(2.47 KB)
📄
raw_ip6.c
(23.46 KB)
📄
raw_ip6.h
(2.43 KB)
📄
route6.c
(3.29 KB)
📄
scope6.c
(14.65 KB)
📄
scope6_var.h
(2.98 KB)
📄
sctp6_usrreq.c
(30.99 KB)
📄
sctp6_var.h
(2.32 KB)
📄
send.c
(9.02 KB)
📄
send.h
(1.83 KB)
📄
tcp6_var.h
(3.66 KB)
📄
udp6_usrreq.c
(35.3 KB)
📄
udp6_var.h
(3.54 KB)
Editing: route6.c
/*- * SPDX-License-Identifier: BSD-3-Clause * * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the project nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $KAME: route6.c,v 1.24 2001/03/14 03:07:05 itojun Exp $ */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" #include <sys/param.h> #include <sys/mbuf.h> #include <sys/socket.h> #include <sys/systm.h> #include <sys/queue.h> #include <net/if.h> #include <net/if_var.h> #include <netinet/in.h> #include <netinet6/in6_var.h> #include <netinet/ip6.h> #include <netinet6/ip6_var.h> #include <netinet6/scope6_var.h> #include <netinet/icmp6.h> /* * proto - is unused */ int route6_input(struct mbuf **mp, int *offp, int proto) { struct ip6_hdr *ip6; struct mbuf *m; struct ip6_rthdr *rh; int off = *offp, rhlen; #ifdef __notyet__ struct ip6aux *ip6a; #endif m = *mp; #ifdef __notyet__ ip6a = ip6_findaux(m); if (ip6a) { /* XXX reject home-address option before rthdr */ if (ip6a->ip6a_flags & IP6A_SWAP) { IP6STAT_INC(ip6s_badoptions); m_freem(m); return IPPROTO_DONE; } } #endif if (m->m_len < off + sizeof(*rh)) { m = m_pullup(m, off + sizeof(*rh)); if (m == NULL) { IP6STAT_INC(ip6s_exthdrtoolong); *mp = NULL; return (IPPROTO_DONE); } } ip6 = mtod(m, struct ip6_hdr *); rh = (struct ip6_rthdr *)((caddr_t)ip6 + off); /* * While this switch may look gratuitous, leave it in * in favour of RH2 implementations, etc. */ switch (rh->ip6r_type) { default: /* Unknown routing header type. */ if (rh->ip6r_segleft == 0) { rhlen = (rh->ip6r_len + 1) << 3; break; /* Final dst. Just ignore the header. */ } IP6STAT_INC(ip6s_badoptions); icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, (caddr_t)&rh->ip6r_type - (caddr_t)ip6); *mp = NULL; return (IPPROTO_DONE); } *offp += rhlen; *mp = m; return (rh->ip6r_nxt); }
Upload File
Create Folder