[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.231.2.2 and 1.238

version 1.231.2.2, 2006/12/10 07:19:10 version 1.238, 2006/12/06 00:39:56
Line 1679  ip_rtaddr(struct in_addr dst)
Line 1679  ip_rtaddr(struct in_addr dst)
   
         sin = satosin(&ipforward_rt.ro_dst);          sin = satosin(&ipforward_rt.ro_dst);
   
         if (ipforward_rt.ro_rt == NULL || !in_hosteq(dst, sin->sin_addr)) {          if (ipforward_rt.ro_rt == 0 || !in_hosteq(dst, sin->sin_addr)) {
                 if (ipforward_rt.ro_rt != NULL)                  if (ipforward_rt.ro_rt) {
                         rtflush(&ipforward_rt);                          RTFREE(ipforward_rt.ro_rt);
                           ipforward_rt.ro_rt = 0;
                   }
                 sin->sin_family = AF_INET;                  sin->sin_family = AF_INET;
                 sin->sin_len = sizeof(*sin);                  sin->sin_len = sizeof(*sin);
                 sin->sin_addr = dst;                  sin->sin_addr = dst;
   
                 rtalloc(&ipforward_rt);                  rtalloc(&ipforward_rt);
         }          }
         if (ipforward_rt.ro_rt == NULL)          if (ipforward_rt.ro_rt == 0)
                 return NULL;                  return ((struct in_ifaddr *)0);
         return ifatoia(ipforward_rt.ro_rt->rt_ifa);          return (ifatoia(ipforward_rt.ro_rt->rt_ifa));
 }  }
   
 /*  /*
Line 1871  ip_forward(struct mbuf *m, int srcrt)
Line 1873  ip_forward(struct mbuf *m, int srcrt)
         }          }
   
         sin = satosin(&ipforward_rt.ro_dst);          sin = satosin(&ipforward_rt.ro_dst);
         if ((rt = ipforward_rt.ro_rt) == NULL ||          if ((rt = ipforward_rt.ro_rt) == 0 ||
             !in_hosteq(ip->ip_dst, sin->sin_addr)) {              !in_hosteq(ip->ip_dst, sin->sin_addr)) {
                 if (ipforward_rt.ro_rt != NULL)                  if (ipforward_rt.ro_rt) {
                         rtflush(&ipforward_rt);                          RTFREE(ipforward_rt.ro_rt);
                           ipforward_rt.ro_rt = 0;
                   }
                 sin->sin_family = AF_INET;                  sin->sin_family = AF_INET;
                 sin->sin_len = sizeof(struct sockaddr_in);                  sin->sin_len = sizeof(struct sockaddr_in);
                 sin->sin_addr = ip->ip_dst;                  sin->sin_addr = ip->ip_dst;
   
                 rtalloc(&ipforward_rt);                  rtalloc(&ipforward_rt);
                 if (ipforward_rt.ro_rt == NULL) {                  if (ipforward_rt.ro_rt == 0) {
                         icmp_error(m, ICMP_UNREACH, ICMP_UNREACH_NET, dest, 0);                          icmp_error(m, ICMP_UNREACH, ICMP_UNREACH_NET, dest, 0);
                         return;                          return;
                 }                  }

Legend:
Removed from v.1.231.2.2  
changed lines
  Added in v.1.238

CVSweb <webmaster@jp.NetBSD.org>