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

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

Diff for /src/sys/netinet/udp_usrreq.c between version 1.173 and 1.173.2.2

version 1.173, 2008/08/06 15:01:23 version 1.173.2.2, 2009/04/28 07:37:23
Line 64 
Line 64 
 __KERNEL_RCSID(0, "$NetBSD$");  __KERNEL_RCSID(0, "$NetBSD$");
   
 #include "opt_inet.h"  #include "opt_inet.h"
   #include "opt_compat_netbsd.h"
 #include "opt_ipsec.h"  #include "opt_ipsec.h"
 #include "opt_inet_csum.h"  #include "opt_inet_csum.h"
 #include "opt_ipkdb.h"  #include "opt_ipkdb.h"
Line 136  __KERNEL_RCSID(0, "$NetBSD$");
Line 137  __KERNEL_RCSID(0, "$NetBSD$");
 #include <netkey/key.h>  #include <netkey/key.h>
 #endif /* IPSEC */  #endif /* IPSEC */
   
   #ifdef COMPAT_50
   #include <compat/sys/socket.h>
   #endif
   
 #ifdef IPKDB  #ifdef IPKDB
 #include <ipkdb/ipkdb.h>  #include <ipkdb/ipkdb.h>
 #endif  #endif
Line 408  udp_input(struct mbuf *m, ...)
Line 413  udp_input(struct mbuf *m, ...)
         if (IN_MULTICAST(ip->ip_dst.s_addr) || n == 0) {          if (IN_MULTICAST(ip->ip_dst.s_addr) || n == 0) {
                 struct sockaddr_in6 src6, dst6;                  struct sockaddr_in6 src6, dst6;
   
                 bzero(&src6, sizeof(src6));                  memset(&src6, 0, sizeof(src6));
                 src6.sin6_family = AF_INET6;                  src6.sin6_family = AF_INET6;
                 src6.sin6_len = sizeof(struct sockaddr_in6);                  src6.sin6_len = sizeof(struct sockaddr_in6);
                 src6.sin6_addr.s6_addr[10] = src6.sin6_addr.s6_addr[11] = 0xff;                  src6.sin6_addr.s6_addr[10] = src6.sin6_addr.s6_addr[11] = 0xff;
                 bcopy(&ip->ip_src, &src6.sin6_addr.s6_addr[12],                  memcpy(&src6.sin6_addr.s6_addr[12], &ip->ip_src,
                         sizeof(ip->ip_src));                          sizeof(ip->ip_src));
                 src6.sin6_port = uh->uh_sport;                  src6.sin6_port = uh->uh_sport;
                 bzero(&dst6, sizeof(dst6));                  memset(&dst6, 0, sizeof(dst6));
                 dst6.sin6_family = AF_INET6;                  dst6.sin6_family = AF_INET6;
                 dst6.sin6_len = sizeof(struct sockaddr_in6);                  dst6.sin6_len = sizeof(struct sockaddr_in6);
                 dst6.sin6_addr.s6_addr[10] = dst6.sin6_addr.s6_addr[11] = 0xff;                  dst6.sin6_addr.s6_addr[10] = dst6.sin6_addr.s6_addr[11] = 0xff;
                 bcopy(&ip->ip_dst, &dst6.sin6_addr.s6_addr[12],                  memcpy(&dst6.sin6_addr.s6_addr[12], &ip->ip_dst,
                         sizeof(ip->ip_dst));                          sizeof(ip->ip_dst));
                 dst6.sin6_port = uh->uh_dport;                  dst6.sin6_port = uh->uh_dport;
   
Line 575  udp6_input(struct mbuf **mp, int *offp, 
Line 580  udp6_input(struct mbuf **mp, int *offp, 
         /*          /*
          * Construct source and dst sockaddrs.           * Construct source and dst sockaddrs.
          */           */
         bzero(&src, sizeof(src));          memset(&src, 0, sizeof(src));
         src.sin6_family = AF_INET6;          src.sin6_family = AF_INET6;
         src.sin6_len = sizeof(struct sockaddr_in6);          src.sin6_len = sizeof(struct sockaddr_in6);
         src.sin6_addr = ip6->ip6_src;          src.sin6_addr = ip6->ip6_src;
         src.sin6_port = uh->uh_sport;          src.sin6_port = uh->uh_sport;
         bzero(&dst, sizeof(dst));          memset(&dst, 0, sizeof(dst));
         dst.sin6_family = AF_INET6;          dst.sin6_family = AF_INET6;
         dst.sin6_len = sizeof(struct sockaddr_in6);          dst.sin6_len = sizeof(struct sockaddr_in6);
         dst.sin6_addr = ip6->ip6_dst;          dst.sin6_addr = ip6->ip6_dst;
Line 639  udp4_sendup(struct mbuf *m, int off /* o
Line 644  udp4_sendup(struct mbuf *m, int off /* o
   
         if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) {          if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) {
                 if (inp && (inp->inp_flags & INP_CONTROLOPTS                  if (inp && (inp->inp_flags & INP_CONTROLOPTS
   #ifdef SO_OTIMESTAMP
                            || so->so_options & SO_OTIMESTAMP
   #endif
                          || so->so_options & SO_TIMESTAMP)) {                           || so->so_options & SO_TIMESTAMP)) {
                         struct ip *ip = mtod(n, struct ip *);                          struct ip *ip = mtod(n, struct ip *);
                         ip_savecontrol(inp, &opts, ip, n);                          ip_savecontrol(inp, &opts, ip, n);
Line 686  udp6_sendup(struct mbuf *m, int off /* o
Line 694  udp6_sendup(struct mbuf *m, int off /* o
   
         if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) {          if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) {
                 if (in6p && (in6p->in6p_flags & IN6P_CONTROLOPTS                  if (in6p && (in6p->in6p_flags & IN6P_CONTROLOPTS
                           || in6p->in6p_socket->so_options & SO_TIMESTAMP)) {  #ifdef SO_OTIMESTAMP
                       || in6p->in6p_socket->so_options & SO_OTIMESTAMP
   #endif
                       || in6p->in6p_socket->so_options & SO_TIMESTAMP)) {
                         struct ip6_hdr *ip6 = mtod(n, struct ip6_hdr *);                          struct ip6_hdr *ip6 = mtod(n, struct ip6_hdr *);
                         ip6_savecontrol(in6p, &opts, ip6, n);                          ip6_savecontrol(in6p, &opts, ip6, n);
                 }                  }

Legend:
Removed from v.1.173  
changed lines
  Added in v.1.173.2.2

CVSweb <webmaster@jp.NetBSD.org>