[BACK]Return to ip_input.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/ip_input.c between version 1.19 and 1.20

version 1.19, 1995/06/04 05:07:03 version 1.20, 1995/06/04 05:58:26
Line 239  next:
Line 239  next:
          * Check our list of addresses, to see if the packet is for us.           * Check our list of addresses, to see if the packet is for us.
          */           */
         for (ia = in_ifaddr; ia; ia = ia->ia_next) {          for (ia = in_ifaddr; ia; ia = ia->ia_next) {
                 if (IA_SIN(ia)->sin_addr.s_addr == ip->ip_dst.s_addr)                  if (ip->ip_dst.s_addr == ia->ia_addr.sin_addr.s_addr)
                         goto ours;                          goto ours;
                 if (                  if (
 #ifdef  DIRECTED_BROADCAST  #ifdef  DIRECTED_BROADCAST
                     ia->ia_ifp == m->m_pkthdr.rcvif &&                      ia->ia_ifp == m->m_pkthdr.rcvif &&
 #endif  #endif
                     (ia->ia_ifp->if_flags & IFF_BROADCAST)) {                      (ia->ia_ifp->if_flags & IFF_BROADCAST)) {
                         if (ip->ip_dst.s_addr ==                          if (ip->ip_dst.s_addr == ia->ia_broadaddr.sin_addr.s_addr ||
                             satosin(&ia->ia_broadaddr)->sin_addr.s_addr)                              ip->ip_dst.s_addr == ia->ia_netbroadcast.s_addr ||
                                 goto ours;                              /*
                         if (ip->ip_dst.s_addr == ia->ia_netbroadcast.s_addr)                               * Look for all-0's host part (old broadcast addr),
                                 goto ours;                               * either for subnet or net.
                         /*                               */
                          * Look for all-0's host part (old broadcast addr),                              ip->ip_dst.s_addr == ia->ia_subnet ||
                          * either for subnet or net.  
                          */  
                         if (ip->ip_dst.s_addr == ia->ia_subnet ||  
                             ip->ip_dst.s_addr == ia->ia_net)                              ip->ip_dst.s_addr == ia->ia_net)
                                 goto ours;                                  goto ours;
                 }                  }
Line 732  ip_dooptions(m)
Line 729  ip_dooptions(m)
                                 goto bad;                                  goto bad;
                         }                          }
                         ip->ip_dst = ipaddr.sin_addr;                          ip->ip_dst = ipaddr.sin_addr;
                         bcopy((caddr_t)&(IA_SIN(ia)->sin_addr),                          bcopy((caddr_t)&ia->ia_addr.sin_addr,
                             (caddr_t)(cp + off), sizeof(struct in_addr));                              (caddr_t)(cp + off), sizeof(struct in_addr));
                         cp[IPOPT_OFFSET] += sizeof(struct in_addr);                          cp[IPOPT_OFFSET] += sizeof(struct in_addr);
                         /*                          /*
Line 764  ip_dooptions(m)
Line 761  ip_dooptions(m)
                                 code = ICMP_UNREACH_HOST;                                  code = ICMP_UNREACH_HOST;
                                 goto bad;                                  goto bad;
                         }                          }
                         bcopy((caddr_t)&(IA_SIN(ia)->sin_addr),                          bcopy((caddr_t)&ia->ia_addr.sin_addr,
                             (caddr_t)(cp + off), sizeof(struct in_addr));                              (caddr_t)(cp + off), sizeof(struct in_addr));
                         cp[IPOPT_OFFSET] += sizeof(struct in_addr);                          cp[IPOPT_OFFSET] += sizeof(struct in_addr);
                         break;                          break;
Line 794  ip_dooptions(m)
Line 791  ip_dooptions(m)
                                                             m->m_pkthdr.rcvif);                                                              m->m_pkthdr.rcvif);
                                 if (ia == 0)                                  if (ia == 0)
                                         continue;                                          continue;
                                 bcopy((caddr_t)&IA_SIN(ia)->sin_addr,                                  bcopy((caddr_t)&ia->ia_addr.sin_addr,
                                     (caddr_t)sin, sizeof(struct in_addr));                                      (caddr_t)sin, sizeof(struct in_addr));
                                 ipt->ipt_ptr += sizeof(struct in_addr);                                  ipt->ipt_ptr += sizeof(struct in_addr);
                                 break;                                  break;

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

CVSweb <webmaster@jp.NetBSD.org>