[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.26 and 1.27

version 1.26, 1996/01/15 21:11:55 version 1.27, 1996/01/16 04:17:37
Line 70 
Line 70 
 #ifndef IPFORWSRCRT  #ifndef IPFORWSRCRT
 #define IPFORWSRCRT     1       /* allow source-routed packets */  #define IPFORWSRCRT     1       /* allow source-routed packets */
 #endif  #endif
   /*
    * Note: DIRECTED_BROADCAST is handled this way so that previous
    * configuration using this option will Just Work.
    */
   #ifndef IPDIRECTEDBCAST
   #ifdef DIRECTED_BROADCAST
   #define IPDIRECTEDBCAST 1
   #else
   #define IPDIRECTEDBCAST 0
   #endif /* DIRECTED_BROADCAST */
   #endif /* IPDIRECTEDBCAST */
 int     ipforwarding = IPFORWARDING;  int     ipforwarding = IPFORWARDING;
 int     ipsendredirects = IPSENDREDIRECTS;  int     ipsendredirects = IPSENDREDIRECTS;
 int     ip_defttl = IPDEFTTL;  int     ip_defttl = IPDEFTTL;
 int     ip_forwsrcrt = IPFORWSRCRT;  int     ip_forwsrcrt = IPFORWSRCRT;
   int     ip_directedbcast = IPDIRECTEDBCAST;
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
 int     ipprintfs = 0;  int     ipprintfs = 0;
 #endif  #endif
Line 237  next:
Line 249  next:
         for (ia = in_ifaddr.tqh_first; ia; ia = ia->ia_list.tqe_next) {          for (ia = in_ifaddr.tqh_first; ia; ia = ia->ia_list.tqe_next) {
                 if (ip->ip_dst.s_addr == ia->ia_addr.sin_addr.s_addr)                  if (ip->ip_dst.s_addr == ia->ia_addr.sin_addr.s_addr)
                         goto ours;                          goto ours;
                 if (                  if (((ip_directedbcast == 0) || (ip_directedbcast &&
 #ifdef  DIRECTED_BROADCAST                      ia->ia_ifp == m->m_pkthdr.rcvif)) &&
                     ia->ia_ifp == m->m_pkthdr.rcvif &&  
 #endif  
                     (ia->ia_ifp->if_flags & IFF_BROADCAST)) {                      (ia->ia_ifp->if_flags & IFF_BROADCAST)) {
                         if (ip->ip_dst.s_addr == ia->ia_broadaddr.sin_addr.s_addr ||                          if (ip->ip_dst.s_addr == ia->ia_broadaddr.sin_addr.s_addr ||
                             ip->ip_dst.s_addr == ia->ia_netbroadcast.s_addr ||                              ip->ip_dst.s_addr == ia->ia_netbroadcast.s_addr ||
Line 1071  ip_forward(m, srcrt)
Line 1081  ip_forward(m, srcrt)
                 }                  }
         }          }
   
         error = ip_output(m, (struct mbuf *)0, &ipforward_rt, IP_FORWARDING          error = ip_output(m, (struct mbuf *)0, &ipforward_rt,
 #ifdef DIRECTED_BROADCAST              (IP_FORWARDING | (ip_directedbcast ? IP_ALLOWBROADCAST : 0)), 0);
                             | IP_ALLOWBROADCAST  
 #endif  
                                                 , 0);  
         if (error)          if (error)
                 ipstat.ips_cantforward++;                  ipstat.ips_cantforward++;
         else {          else {
Line 1158  ip_sysctl(name, namelen, oldp, oldlenp, 
Line 1165  ip_sysctl(name, namelen, oldp, oldlenp, 
                         return (EPERM);                          return (EPERM);
                 return (sysctl_int(oldp, oldlenp, newp, newlen,                  return (sysctl_int(oldp, oldlenp, newp, newlen,
                     &ip_forwsrcrt));                      &ip_forwsrcrt));
           case IPCTL_DIRECTEDBCAST:
                   return (sysctl_int(oldp, oldlenp, newp, newlen,
                       &ip_directedbcast));
         default:          default:
                 return (EOPNOTSUPP);                  return (EOPNOTSUPP);
         }          }

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

CVSweb <webmaster@jp.NetBSD.org>