[BACK]Return to ip6_input.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / netinet6

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/netinet6/ip6_input.c between version 1.44 and 1.52

version 1.44, 2001/10/16 06:24:44 version 1.52, 2002/05/12 15:48:39
Line 65 
Line 65 
  *      @(#)ip_input.c  8.2 (Berkeley) 1/4/94   *      @(#)ip_input.c  8.2 (Berkeley) 1/4/94
  */   */
   
   #include <sys/cdefs.h>
   __KERNEL_RCSID(0, "$NetBSD$");
   
 #include "opt_inet.h"  #include "opt_inet.h"
 #include "opt_ipsec.h"  #include "opt_ipsec.h"
 #include "opt_pfil_hooks.h"  #include "opt_pfil_hooks.h"
Line 82 
Line 85 
 #include <sys/kernel.h>  #include <sys/kernel.h>
 #include <sys/syslog.h>  #include <sys/syslog.h>
 #include <sys/proc.h>  #include <sys/proc.h>
   #include <sys/sysctl.h>
   
 #include <net/if.h>  #include <net/if.h>
 #include <net/if_types.h>  #include <net/if_types.h>
Line 97 
Line 101 
 #ifdef INET  #ifdef INET
 #include <netinet/ip.h>  #include <netinet/ip.h>
 #include <netinet/ip_icmp.h>  #include <netinet/ip_icmp.h>
 #endif /*INET*/  #endif /* INET */
 #include <netinet/ip6.h>  #include <netinet/ip6.h>
 #include <netinet6/in6_var.h>  #include <netinet6/in6_var.h>
 #include <netinet6/ip6_var.h>  #include <netinet6/ip6_var.h>
Line 116 
Line 120 
 /* we need it for NLOOP. */  /* we need it for NLOOP. */
 #include "loop.h"  #include "loop.h"
 #include "faith.h"  #include "faith.h"
   
 #include "gif.h"  #include "gif.h"
 #include "bpfilter.h"  #include "bpfilter.h"
   
   #if NGIF > 0
   #include <netinet6/in6_gif.h>
   #endif
   
 #include <net/net_osdep.h>  #include <net/net_osdep.h>
   
 extern struct domain inet6domain;  extern struct domain inet6domain;
Line 243  ip6_input(m)
Line 250  ip6_input(m)
          * should the inner packet be considered authentic?           * should the inner packet be considered authentic?
          * see comment in ah4_input().           * see comment in ah4_input().
          */           */
         if (m) {          m->m_flags &= ~M_AUTHIPHDR;
                 m->m_flags &= ~M_AUTHIPHDR;          m->m_flags &= ~M_AUTHIPDGM;
                 m->m_flags &= ~M_AUTHIPDGM;  
         }  
 #endif  #endif
   
         /*          /*
Line 352  ip6_input(m)
Line 357  ip6_input(m)
          * support IPv4-less kernel compilation, we cannot support SIIT           * support IPv4-less kernel compilation, we cannot support SIIT
          * environment at all.  So, it makes more sense for us to reject any           * environment at all.  So, it makes more sense for us to reject any
          * malicious packets for non-SIIT environment, than try to do a           * malicious packets for non-SIIT environment, than try to do a
          * partical support for SIIT environment.           * partial support for SIIT environment.
          */           */
         if (IN6_IS_ADDR_V4MAPPED(&ip6->ip6_src) ||          if (IN6_IS_ADDR_V4MAPPED(&ip6->ip6_src) ||
             IN6_IS_ADDR_V4MAPPED(&ip6->ip6_dst)) {              IN6_IS_ADDR_V4MAPPED(&ip6->ip6_dst)) {
Line 541  ip6_input(m)
Line 546  ip6_input(m)
                  && ip6_forward_rt.ro_rt->rt_ifp->if_type == IFT_FAITH) {                   && ip6_forward_rt.ro_rt->rt_ifp->if_type == IFT_FAITH) {
                         /* XXX do we need more sanity checks? */                          /* XXX do we need more sanity checks? */
                         ours = 1;                          ours = 1;
                         deliverifp = ip6_forward_rt.ro_rt->rt_ifp; /*faith*/                          deliverifp = ip6_forward_rt.ro_rt->rt_ifp; /* faith */
                         goto hbhcheck;                          goto hbhcheck;
                 }                  }
         }          }
Line 602  ip6_input(m)
Line 607  ip6_input(m)
                 ip6 = mtod(m, struct ip6_hdr *);                  ip6 = mtod(m, struct ip6_hdr *);
   
                 /*                  /*
                  * if the payload length field is 0 and the next header field                   * if the payload length field is 0 and the next header field
                  * indicates Hop-by-Hop Options header, then a Jumbo Payload                   * indicates Hop-by-Hop Options header, then a Jumbo Payload
                  * option MUST be included.                   * option MUST be included.
                  */                   */
Line 1321  ip6_nexthdr(m, off, proto, nxtp)
Line 1326  ip6_nexthdr(m, off, proto, nxtp)
                 if (nxtp)                  if (nxtp)
                         *nxtp = ip6e.ip6e_nxt;                          *nxtp = ip6e.ip6e_nxt;
                 off += (ip6e.ip6e_len + 2) << 2;                  off += (ip6e.ip6e_len + 2) << 2;
                   if (m->m_pkthdr.len < off)
                           return -1;
                 return off;                  return off;
   
         case IPPROTO_HOPOPTS:          case IPPROTO_HOPOPTS:
Line 1332  ip6_nexthdr(m, off, proto, nxtp)
Line 1339  ip6_nexthdr(m, off, proto, nxtp)
                 if (nxtp)                  if (nxtp)
                         *nxtp = ip6e.ip6e_nxt;                          *nxtp = ip6e.ip6e_nxt;
                 off += (ip6e.ip6e_len + 1) << 3;                  off += (ip6e.ip6e_len + 1) << 3;
                   if (m->m_pkthdr.len < off)
                           return -1;
                 return off;                  return off;
   
         case IPPROTO_NONE:          case IPPROTO_NONE:
Line 1391  u_char inet6ctlerrmap[PRC_NCMDS] = {
Line 1400  u_char inet6ctlerrmap[PRC_NCMDS] = {
         ENOPROTOOPT          ENOPROTOOPT
 };  };
   
 #include <uvm/uvm_extern.h>  
 #include <sys/sysctl.h>  
   
 int  int
 ip6_sysctl(name, namelen, oldp, oldlenp, newp, newlen)  ip6_sysctl(name, namelen, oldp, oldlenp, newp, newlen)
         int *name;          int *name;
Line 1441  ip6_sysctl(name, namelen, oldp, oldlenp,
Line 1447  ip6_sysctl(name, namelen, oldp, oldlenp,
         case IPV6CTL_DEFMCASTHLIM:          case IPV6CTL_DEFMCASTHLIM:
                 return sysctl_int(oldp, oldlenp, newp, newlen,                  return sysctl_int(oldp, oldlenp, newp, newlen,
                                 &ip6_defmcasthlim);                                  &ip6_defmcasthlim);
   #if NGIF > 0
         case IPV6CTL_GIF_HLIM:          case IPV6CTL_GIF_HLIM:
                 return sysctl_int(oldp, oldlenp, newp, newlen,                  return sysctl_int(oldp, oldlenp, newp, newlen,
                                 &ip6_gif_hlim);                                  &ip6_gif_hlim);
   #endif
         case IPV6CTL_KAME_VERSION:          case IPV6CTL_KAME_VERSION:
                 return sysctl_rdstring(oldp, oldlenp, newp, __KAME_VERSION);                  return sysctl_rdstring(oldp, oldlenp, newp, __KAME_VERSION);
         case IPV6CTL_USE_DEPRECATED:          case IPV6CTL_USE_DEPRECATED:

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.52

CVSweb <webmaster@jp.NetBSD.org>