[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.120 and 1.123

version 1.120, 2000/11/08 14:28:15 version 1.123, 2000/12/14 17:36:44
Line 205  struct ifqueue ipintrq;
Line 205  struct ifqueue ipintrq;
 struct  ipstat  ipstat;  struct  ipstat  ipstat;
 u_int16_t       ip_id;  u_int16_t       ip_id;
   
   #ifdef PFIL_HOOKS
   struct pfil_head inet_pfil_hook;
   #endif
   
 struct ipqhead ipq;  struct ipqhead ipq;
 int     ipq_locked;  int     ipq_locked;
   
Line 312  ip_init()
Line 316  ip_init()
 #ifdef GATEWAY  #ifdef GATEWAY
         ipflow_init();          ipflow_init();
 #endif  #endif
   
   #ifdef PFIL_HOOKS
           /* Register our Packet Filter hook. */
           inet_pfil_hook.ph_key = (void *)(u_long) AF_INET;
           inet_pfil_hook.ph_dlt = DLT_RAW;
           i = pfil_head_register(&inet_pfil_hook);
           if (i != 0)
                   printf("ip_init: WARNING: unable to register pfil hook, "
                       "error %d\n", i);
   #endif /* PFIL_HOOKS */
 }  }
   
 struct  sockaddr_in ipaddr = { sizeof(ipaddr), AF_INET };  struct  sockaddr_in ipaddr = { sizeof(ipaddr), AF_INET };
Line 350  ip_input(struct mbuf *m)
Line 364  ip_input(struct mbuf *m)
         struct ipqent *ipqe;          struct ipqent *ipqe;
         int hlen = 0, mff, len;          int hlen = 0, mff, len;
         int downmatch;          int downmatch;
 #ifdef PFIL_HOOKS  
         struct packet_filter_hook *pfh;  
         struct mbuf *m0;  
         int rv;  
 #endif /* PFIL_HOOKS */  
   
 #ifdef  DIAGNOSTIC  #ifdef  DIAGNOSTIC
         if ((m->m_flags & M_PKTHDR) == 0)          if ((m->m_flags & M_PKTHDR) == 0)
Line 414  ip_input(struct mbuf *m)
Line 423  ip_input(struct mbuf *m)
                 goto bad;                  goto bad;
         }          }
   
         /*          /* Retrieve the packet length. */
          * Convert fields to host representation.          len = ntohs(ip->ip_len);
          */  
         NTOHS(ip->ip_len);  
         NTOHS(ip->ip_off);  
         len = ip->ip_len;  
   
         /*          /*
          * Check for additional length bogosity           * Check for additional length bogosity
Line 466  ip_input(struct mbuf *m)
Line 471  ip_input(struct mbuf *m)
          * Note that filters must _never_ set this flag, as another filter           * Note that filters must _never_ set this flag, as another filter
          * in the list may have previously cleared it.           * in the list may have previously cleared it.
          */           */
         m0 = m;          if (pfil_run_hooks(&inet_pfil_hook, &m, m->m_pkthdr.rcvif,
         pfh = pfil_hook_get(PFIL_IN, &inetsw[ip_protox[IPPROTO_IP]].pr_pfh);                             PFIL_IN) != 0)
         for (; pfh; pfh = pfh->pfil_link.tqe_next)                  return;
                 if (pfh->pfil_func) {          if (m == NULL)
                         rv = pfh->pfil_func(ip, hlen,                  return;
                                             m->m_pkthdr.rcvif, 0, &m0);          ip = mtod(m, struct ip *);
                         if (rv)  
                                 return;  
                         m = m0;  
                         if (m == NULL)  
                                 return;  
                         ip = mtod(m, struct ip *);  
                 }  
 #endif /* PFIL_HOOKS */  #endif /* PFIL_HOOKS */
   
   #ifdef ALTQ
           /* XXX Temporary until ALTQ is changed to use a pfil hook */
           if (altq_input != NULL && (*altq_input)(m, AF_INET) == 0) {
                   /* packet dropped by traffic conditioner */
                   return;
           }
   #endif
   
           /*
            * Convert fields to host representation.
            */
           NTOHS(ip->ip_len);
           NTOHS(ip->ip_off);
   
         /*          /*
          * Process options and, if not destined for us,           * Process options and, if not destined for us,
          * ship it on.  ip_dooptions returns 1 when an           * ship it on.  ip_dooptions returns 1 when an
Line 691  found:
Line 703  found:
          * Switch out to protocol's input routine.           * Switch out to protocol's input routine.
          */           */
 #if IFA_STATS  #if IFA_STATS
         ia->ia_ifa.ifa_data.ifad_inbytes += ip->ip_len;          if (ia && ip)
                   ia->ia_ifa.ifa_data.ifad_inbytes += ip->ip_len;
 #endif  #endif
         ipstat.ips_delivered++;          ipstat.ips_delivered++;
     {      {

Legend:
Removed from v.1.120  
changed lines
  Added in v.1.123

CVSweb <webmaster@jp.NetBSD.org>