[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.249 and 1.249.2.2

version 1.249, 2007/05/02 20:40:25 version 1.249.2.2, 2007/09/03 10:23:45
Line 904  ours:
Line 904  ours:
                  */                   */
                 IPQ_LOCK();                  IPQ_LOCK();
                 hash = IPREASS_HASH(ip->ip_src.s_addr, ip->ip_id);                  hash = IPREASS_HASH(ip->ip_src.s_addr, ip->ip_id);
                 /* XXX LIST_FOREACH(fp, &ipq[hash], ipq_q) */                  LIST_FOREACH(fp, &ipq[hash], ipq_q) {
                 for (fp = LIST_FIRST(&ipq[hash]); fp != NULL;  
                      fp = LIST_NEXT(fp, ipq_q)) {  
                         if (ip->ip_id == fp->ipq_id &&                          if (ip->ip_id == fp->ipq_id &&
                             in_hosteq(ip->ip_src, fp->ipq_src) &&                              in_hosteq(ip->ip_src, fp->ipq_src) &&
                             in_hosteq(ip->ip_dst, fp->ipq_dst) &&                              in_hosteq(ip->ip_dst, fp->ipq_dst) &&
Line 1895  ip_forward(struct mbuf *m, int srcrt)
Line 1893  ip_forward(struct mbuf *m, int srcrt)
          */           */
         if (rt->rt_ifp == m->m_pkthdr.rcvif &&          if (rt->rt_ifp == m->m_pkthdr.rcvif &&
             (rt->rt_flags & (RTF_DYNAMIC|RTF_MODIFIED)) == 0 &&              (rt->rt_flags & (RTF_DYNAMIC|RTF_MODIFIED)) == 0 &&
             !in_nullhost(satosin(rt_key(rt))->sin_addr) &&              !in_nullhost(satocsin(rt_getkey(rt))->sin_addr) &&
             ipsendredirects && !srcrt) {              ipsendredirects && !srcrt) {
                 if (rt->rt_ifa &&                  if (rt->rt_ifa &&
                     (ip->ip_src.s_addr & ifatoia(rt->rt_ifa)->ia_subnetmask) ==                      (ip->ip_src.s_addr & ifatoia(rt->rt_ifa)->ia_subnetmask) ==
Line 2081  ip_savecontrol(struct inpcb *inp, struct
Line 2079  ip_savecontrol(struct inpcb *inp, struct
         if (inp->inp_flags & INP_RECVIF) {          if (inp->inp_flags & INP_RECVIF) {
                 struct sockaddr_dl sdl;                  struct sockaddr_dl sdl;
   
                 sdl.sdl_len = offsetof(struct sockaddr_dl, sdl_data[0]);                  sockaddr_dl_init(&sdl, sizeof(sdl),
                 sdl.sdl_family = AF_LINK;                      (m->m_pkthdr.rcvif != NULL)
                 sdl.sdl_index = m->m_pkthdr.rcvif ?                          ?  m->m_pkthdr.rcvif->if_index
                     m->m_pkthdr.rcvif->if_index : 0;                          : 0,
                 sdl.sdl_nlen = sdl.sdl_alen = sdl.sdl_slen = 0;                          0, NULL, 0, NULL, 0);
                 *mp = sbcreatecontrol((void *) &sdl, sdl.sdl_len,                  *mp = sbcreatecontrol(&sdl, sdl.sdl_len, IP_RECVIF, IPPROTO_IP);
                     IP_RECVIF, IPPROTO_IP);  
                 if (*mp)                  if (*mp)
                         mp = &(*mp)->m_next;                          mp = &(*mp)->m_next;
         }          }

Legend:
Removed from v.1.249  
changed lines
  Added in v.1.249.2.2

CVSweb <webmaster@jp.NetBSD.org>