[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.81 and 1.84

version 1.81, 2001/07/17 02:44:00 version 1.84, 2001/09/17 17:27:01
Line 284  udp_input(m, va_alist)
Line 284  udp_input(m, va_alist)
          */           */
         if (uh->uh_sum) {          if (uh->uh_sum) {
                 switch (m->m_pkthdr.csum_flags &                  switch (m->m_pkthdr.csum_flags &
                         ((m->m_pkthdr.rcvif->if_csum_flags & M_CSUM_UDPv4) |                          ((m->m_pkthdr.rcvif->if_csum_flags_rx & M_CSUM_UDPv4) |
                          M_CSUM_TCP_UDP_BAD | M_CSUM_DATA)) {                           M_CSUM_TCP_UDP_BAD | M_CSUM_DATA)) {
                 case M_CSUM_UDPv4|M_CSUM_TCP_UDP_BAD:                  case M_CSUM_UDPv4|M_CSUM_TCP_UDP_BAD:
                         UDP_CSUM_COUNTER_INCR(&udp_hwcsum_bad);                          UDP_CSUM_COUNTER_INCR(&udp_hwcsum_bad);
Line 670  udp4_realinput(src, dst, m, off)
Line 670  udp4_realinput(src, dst, m, off)
                             (SO_REUSEPORT|SO_REUSEADDR)) == 0)                              (SO_REUSEPORT|SO_REUSEADDR)) == 0)
                                 break;                                  break;
                 }                  }
   
 #if 0  
                 if (last == NULL) {  
                         /*  
                          * No matching pcb found; discard datagram.  
                          * (No need to send an ICMP Port Unreachable  
                          * for a broadcast or multicast datgram.)  
                          */  
                         udpstat.udps_noportbcast++;  
                         goto bad;  
                 }  
 #endif  
         } else {          } else {
                 /*                  /*
                  * Locate pcb for datagram.                   * Locate pcb for datagram.
Line 690  udp4_realinput(src, dst, m, off)
Line 678  udp4_realinput(src, dst, m, off)
                 if (inp == 0) {                  if (inp == 0) {
                         ++udpstat.udps_pcbhashmiss;                          ++udpstat.udps_pcbhashmiss;
                         inp = in_pcblookup_bind(&udbtable, *dst4, *dport);                          inp = in_pcblookup_bind(&udbtable, *dst4, *dport);
                         if (inp == 0) {                          if (inp == 0)
 #if 0  
                                 struct mbuf *n;  
   
                                 if (m->m_flags & (M_BCAST | M_MCAST)) {  
                                         udpstat.udps_noportbcast++;  
                                         goto bad;  
                                 }  
                                 udpstat.udps_noport++;  
 #ifdef IPKDB  
                                 if (checkipkdb(src4, *sport, *dport, m, off,  
                                                m->m_pkthdr.len - off)) {  
                                         /*  
                                          * It was a debugger connect packet,  
                                          * just drop it now  
                                          */  
                                         goto bad;  
                                 }  
 #endif  
                                 if ((n = m_copy(m, 0, M_COPYALL)) != NULL) {  
                                         icmp_error(n, ICMP_UNREACH,  
                                                 ICMP_UNREACH_PORT, 0, 0);  
                                 }  
 #endif  
                                 return rcvcnt;                                  return rcvcnt;
                         }  
                 }                  }
   
                 udp4_sendup(m, off, (struct sockaddr *)src, inp->inp_socket);                  udp4_sendup(m, off, (struct sockaddr *)src, inp->inp_socket);
Line 851  udp6_realinput(af, src, dst, m, off)
Line 815  udp6_realinput(af, src, dst, m, off)
                             (SO_REUSEPORT|SO_REUSEADDR)) == 0)                              (SO_REUSEPORT|SO_REUSEADDR)) == 0)
                                 break;                                  break;
                 }                  }
   
 #if 0  
                 if (last == NULL) {  
                         /*  
                          * No matching pcb found; discard datagram.  
                          * (No need to send an ICMP Port Unreachable  
                          * for a broadcast or multicast datgram.)  
                          */  
                         switch (af) {  
                         case AF_INET:  
                                 udpstat.udps_noportbcast++;  
                                 break;  
                         case AF_INET6:  
                                 udp6stat.udp6s_noportmcast++;  
                                 break;  
                         }  
                         goto bad;  
                 }  
 #endif  
         } else {          } else {
                 /*                  /*
                  * Locate pcb for datagram.                   * Locate pcb for datagram.
Line 879  udp6_realinput(af, src, dst, m, off)
Line 824  udp6_realinput(af, src, dst, m, off)
                 if (in6p == 0) {                  if (in6p == 0) {
                         ++udpstat.udps_pcbhashmiss;                          ++udpstat.udps_pcbhashmiss;
                         in6p = in6_pcblookup_bind(&udb6, &dst6, dport, 0);                          in6p = in6_pcblookup_bind(&udb6, &dst6, dport, 0);
                         if (in6p == 0) {                          if (in6p == 0)
 #if 0  
                                 struct mbuf *n;  
                                 n = m_copy(m, 0, M_COPYALL);  
                                 switch (af) {  
                                 case AF_INET:  
                                         if (m->m_flags & (M_BCAST | M_MCAST)) {  
                                                 udpstat.udps_noportbcast++;  
                                                 goto bad;  
                                         }  
                                         udpstat.udps_noport++;  
                                         if (n != NULL)  
                                                 icmp_error(n, ICMP_UNREACH,  
                                                     ICMP_UNREACH_PORT, 0, 0);  
                                         break;  
                                 case AF_INET6:  
                                         if (m->m_flags & M_MCAST) {  
                                                 udp6stat.udp6s_noportmcast++;  
                                                 goto bad;  
                                         }  
                                         udp6stat.udp6s_noport++;  
                                         if (n != NULL)  
                                                 icmp6_error(n, ICMP6_DST_UNREACH,  
                                                     ICMP6_DST_UNREACH_NOPORT, 0);  
                                         break;  
                                 }  
 #endif  
   
                                 return rcvcnt;                                  return rcvcnt;
                         }  
                 }                  }
   
                 udp6_sendup(m, off, (struct sockaddr *)src, in6p->in6p_socket);                  udp6_sendup(m, off, (struct sockaddr *)src, in6p->in6p_socket);
Line 1419  udp_usrreq(so, req, m, nam, control, p)
Line 1336  udp_usrreq(so, req, m, nam, control, p)
                         break;                          break;
                 inp = sotoinpcb(so);                  inp = sotoinpcb(so);
                 inp->inp_ip.ip_ttl = ip_defttl;                  inp->inp_ip.ip_ttl = ip_defttl;
 #ifdef IPSEC  
                 error = ipsec_init_policy(so, &inp->inp_sp);  
                 if (error != 0) {  
                         in_pcbdetach(inp);  
                         break;  
                 }  
 #endif /*IPSEC*/  
                 break;                  break;
   
         case PRU_DETACH:          case PRU_DETACH:

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

CVSweb <webmaster@jp.NetBSD.org>