[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.259 and 1.260

version 1.259, 2007/12/21 23:49:09 version 1.260, 2007/12/22 15:41:11
Line 903  ours:
Line 903  ours:
                  * size) and making sure the first fragment is at least 68                   * size) and making sure the first fragment is at least 68
                  * bytes.                   * bytes.
                  */                   */
                 off = htons(ip->ip_off) & ~(IP_DF|IP_EF|IP_MF);                  off = (ntohs(ip->ip_off) & IP_OFFMASK) << 3;
                 if ((off > 0 ? off + hlen : len) < IP_MINFRAGSIZE - 1) {                  if ((off > 0 ? off + hlen : len) < IP_MINFRAGSIZE - 1) {
                         ipstat.ips_badfrags++;                          ipstat.ips_badfrags++;
                         goto bad;                          goto bad;
Line 918  ours:
Line 918  ours:
                         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) &&
                             ip->ip_p == fp->ipq_p)                              ip->ip_p == fp->ipq_p) {
                                   /*
                                    * Make sure the TOS is matches previous
                                    * fragments.
                                    */
                                   if (ip->ip_tos != fp->ipq_tos) {
                                           ipstat.ips_badfrags++;
                                           goto bad;
                                   }
                                 goto found;                                  goto found;
                           }
                 }                  }
                 fp = 0;                  fp = 0;
 found:  found:
Line 1116  ip_reass(struct ipqent *ipqe, struct ipq
Line 1124  ip_reass(struct ipqent *ipqe, struct ipq
                 fp->ipq_ttl = IPFRAGTTL;                  fp->ipq_ttl = IPFRAGTTL;
                 fp->ipq_p = ipqe->ipqe_ip->ip_p;                  fp->ipq_p = ipqe->ipqe_ip->ip_p;
                 fp->ipq_id = ipqe->ipqe_ip->ip_id;                  fp->ipq_id = ipqe->ipqe_ip->ip_id;
                   fp->ipq_tos = ipqe->ipqe_ip->ip_tos;
                 TAILQ_INIT(&fp->ipq_fragq);                  TAILQ_INIT(&fp->ipq_fragq);
                 fp->ipq_src = ipqe->ipqe_ip->ip_src;                  fp->ipq_src = ipqe->ipqe_ip->ip_src;
                 fp->ipq_dst = ipqe->ipqe_ip->ip_dst;                  fp->ipq_dst = ipqe->ipqe_ip->ip_dst;

Legend:
Removed from v.1.259  
changed lines
  Added in v.1.260

CVSweb <webmaster@jp.NetBSD.org>