[BACK]Return to udp6_usrreq.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/udp6_usrreq.c between version 1.30.2.4 and 1.31

version 1.30.2.4, 2001/05/09 19:38:47 version 1.31, 2000/06/28 03:04:04
Line 1 
Line 1 
 /*      $NetBSD$        */  /*      $NetBSD$        */
 /*      $KAME: udp6_usrreq.c,v 1.62 2000/10/19 01:11:05 itojun Exp $    */  /*      $KAME: udp6_usrreq.c,v 1.52 2000/06/05 00:41:58 itojun Exp $    */
   
 /*  /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.   * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
Line 103 
Line 103 
 #endif /*IPSEC*/  #endif /*IPSEC*/
   
 #include "faith.h"  #include "faith.h"
 #if defined(NFAITH) && NFAITH > 0  
 #include <net/if_faith.h>  
 #endif  
   
 /*  /*
  * UDP protocol inplementation.   * UDP protocol inplementation.
Line 164  udp6_input(mp, offp, proto)
Line 161  udp6_input(mp, offp, proto)
         u_int32_t plen, ulen;          u_int32_t plen, ulen;
         struct sockaddr_in6 udp_in6;          struct sockaddr_in6 udp_in6;
   
         ip6 = mtod(m, struct ip6_hdr *);  
   
 #if defined(NFAITH) && 0 < NFAITH  #if defined(NFAITH) && 0 < NFAITH
         if (faithprefix(&ip6->ip6_dst)) {          if (m->m_pkthdr.rcvif) {
                 /* send icmp6 host unreach? */                  if (m->m_pkthdr.rcvif->if_type == IFT_FAITH) {
                 m_freem(m);                          /* send icmp6 host unreach? */
                 return IPPROTO_DONE;                          m_freem(m);
                           return IPPROTO_DONE;
                   }
         }          }
 #endif  #endif
   
         udp6stat.udp6s_ipackets++;          udp6stat.udp6s_ipackets++;
   
           ip6 = mtod(m, struct ip6_hdr *);
         /* check for jumbogram is done in ip6_input.  we can trust pkthdr.len */          /* check for jumbogram is done in ip6_input.  we can trust pkthdr.len */
         plen = m->m_pkthdr.len - off;          plen = m->m_pkthdr.len - off;
 #ifndef PULLDOWN_TEST  #ifndef PULLDOWN_TEST
Line 531  udp6_ctlinput(cmd, sa, d)
Line 528  udp6_ctlinput(cmd, sa, d)
                 if (IN6_IS_ADDR_LINKLOCAL(&s))                  if (IN6_IS_ADDR_LINKLOCAL(&s))
                         s.s6_addr16[1] = htons(m->m_pkthdr.rcvif->if_index);                          s.s6_addr16[1] = htons(m->m_pkthdr.rcvif->if_index);
   
                 /* check if we can safely examine src and dst ports */  
                 if (m->m_pkthdr.len < off + sizeof(uh))  
                         return;  
   
                 if (m->m_len < off + sizeof(uh)) {                  if (m->m_len < off + sizeof(uh)) {
                         /*                          /*
                          * this should be rare case,                           * this should be rare case,
Line 736  udp6_output(in6p, m, addr6, control, p)
Line 729  udp6_output(in6p, m, addr6, control, p)
   
                 udp6stat.udp6s_opackets++;                  udp6stat.udp6s_opackets++;
 #ifdef IPSEC  #ifdef IPSEC
                 if (ipsec_setsocket(m, in6p->in6p_socket) != 0) {                  ipsec_setsocket(m, in6p->in6p_socket);
                         error = ENOBUFS;  
                         goto release;  
                 }  
 #endif /*IPSEC*/  #endif /*IPSEC*/
                 error = ip6_output(m, in6p->in6p_outputopts, &in6p->in6p_route,                  error = ip6_output(m, in6p->in6p_outputopts, &in6p->in6p_route,
                             0, in6p->in6p_moptions, NULL);                              0, in6p->in6p_moptions, NULL);
Line 756  udp6_output(in6p, m, addr6, control, p)
Line 746  udp6_output(in6p, m, addr6, control, p)
   
                 ip->ip_len = plen;                  ip->ip_len = plen;
                 ip->ip_p = IPPROTO_UDP;                  ip->ip_p = IPPROTO_UDP;
                 ip->ip_ttl = in6_selecthlim(in6p, NULL);        /*XXX*/                  ip->ip_ttl = in6p->in6p_hops;   /*XXX*/
                 ip->ip_tos = 0;                 /*XXX*/                  ip->ip_tos = 0;                 /*XXX*/
                 bcopy(&laddr->s6_addr[12], &ip->ip_src, sizeof(ip->ip_src));                  bcopy(&laddr->s6_addr[12], &ip->ip_src, sizeof(ip->ip_src));
                 bcopy(&faddr->s6_addr[12], &ip->ip_dst, sizeof(ip->ip_dst));                  bcopy(&faddr->s6_addr[12], &ip->ip_dst, sizeof(ip->ip_dst));
Line 767  udp6_output(in6p, m, addr6, control, p)
Line 757  udp6_output(in6p, m, addr6, control, p)
   
                 udpstat.udps_opackets++;                  udpstat.udps_opackets++;
 #ifdef IPSEC  #ifdef IPSEC
                 (void)ipsec_setsocket(m, NULL); /*XXX*/                  ipsec_setsocket(m, NULL);       /*XXX*/
 #endif /*IPSEC*/  #endif /*IPSEC*/
                 error = ip_output(m, NULL, &in6p->in6p_route, 0 /*XXX*/);                  error = ip_output(m, NULL, &in6p->in6p_route, 0 /*XXX*/);
                 break;                  break;
Line 973  udp6_detach(in6p)
Line 963  udp6_detach(in6p)
         splx(s);          splx(s);
 }  }
   
 #include <vm/vm.h>  #include <uvm/uvm_extern.h>
 #include <sys/sysctl.h>  #include <sys/sysctl.h>
   
 int  int

Legend:
Removed from v.1.30.2.4  
changed lines
  Added in v.1.31

CVSweb <webmaster@jp.NetBSD.org>