[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.80.2.1 and 1.81

version 1.80.2.1, 2006/02/01 14:52:41 version 1.81, 2006/01/21 00:15:36
Line 298  ip6_input(m)
Line 298  ip6_input(m)
                 goto bad;                  goto bad;
         }          }
   
           /*
            * Disambiguate address scope zones (if there is ambiguity).
            * We first make sure that the original source or destination address
            * is not in our internal form for scoped addresses.  Such addresses
            * are not necessarily invalid spec-wise, but we cannot accept them due
            * to the usage conflict.
            * in6_setscope() then also checks and rejects the cases where src or
            * dst are the loopback address and the receiving interface
            * is not loopback.
            */
           if (in6_clearscope(&ip6->ip6_src) || in6_clearscope(&ip6->ip6_dst)) {
                   ip6stat.ip6s_badscope++; /* XXX */
                   goto bad;
           }
           if (in6_setscope(&ip6->ip6_src, m->m_pkthdr.rcvif, NULL) ||
               in6_setscope(&ip6->ip6_dst, m->m_pkthdr.rcvif, NULL)) {
                   ip6stat.ip6s_badscope++;
                   goto bad;
           }
   
 #ifdef PFIL_HOOKS  #ifdef PFIL_HOOKS
         /*          /*
          * Run through list of hooks for input packets.  If there are any           * Run through list of hooks for input packets.  If there are any
Line 385  ip6_input(m)
Line 405  ip6_input(m)
 #endif  #endif
   
         /*          /*
          * Disambiguate address scope zones (if there is ambiguity).  
          * We first make sure that the original source or destination address  
          * is not in our internal form for scoped addresses.  Such addresses  
          * are not necessarily invalid spec-wise, but we cannot accept them due  
          * to the usage conflict.  
          * in6_setscope() then also checks and rejects the cases where src or  
          * dst are the loopback address and the receiving interface  
          * is not loopback.  
          */  
         if (in6_clearscope(&ip6->ip6_src) || in6_clearscope(&ip6->ip6_dst)) {  
                 ip6stat.ip6s_badscope++; /* XXX */  
                 goto bad;  
         }  
         if (in6_setscope(&ip6->ip6_src, m->m_pkthdr.rcvif, NULL) ||  
             in6_setscope(&ip6->ip6_dst, m->m_pkthdr.rcvif, NULL)) {  
                 ip6stat.ip6s_badscope++;  
                 goto bad;  
         }  
   
         /*  
          * Multicast check           * Multicast check
          */           */
         if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) {          if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) {

Legend:
Removed from v.1.80.2.1  
changed lines
  Added in v.1.81

CVSweb <webmaster@jp.NetBSD.org>