version 1.10, 2000/02/06 12:49:42 |
version 1.10.4.1, 2001/05/26 16:05:44 |
Line 66 static void frag6_insque __P((struct ip6 |
|
Line 66 static void frag6_insque __P((struct ip6 |
|
static void frag6_remque __P((struct ip6q *)); |
static void frag6_remque __P((struct ip6q *)); |
static void frag6_freef __P((struct ip6q *)); |
static void frag6_freef __P((struct ip6q *)); |
|
|
|
/* XXX we eventually need splreass6, or some real semaphore */ |
int frag6_doing_reass; |
int frag6_doing_reass; |
u_int frag6_nfragpackets; |
u_int frag6_nfragpackets; |
struct ip6q ip6q; /* ip6 reassemble queue */ |
struct ip6q ip6q; /* ip6 reassemble queue */ |
Line 392 frag6_input(mp, offp, proto) |
|
Line 393 frag6_input(mp, offp, proto) |
|
i = af6->ip6af_up->ip6af_off + af6->ip6af_up->ip6af_frglen |
i = af6->ip6af_up->ip6af_off + af6->ip6af_up->ip6af_frglen |
- ip6af->ip6af_off; |
- ip6af->ip6af_off; |
if (i > 0) { |
if (i > 0) { |
|
#if 0 /* suppress the noisy log */ |
log(LOG_ERR, "%d bytes of a fragment from %s " |
log(LOG_ERR, "%d bytes of a fragment from %s " |
"overlaps the previous fragment\n", |
"overlaps the previous fragment\n", |
i, ip6_sprintf(&q6->ip6q_src)); |
i, ip6_sprintf(&q6->ip6q_src)); |
|
#endif |
|
free(ip6af, M_FTABLE); |
goto dropfrag; |
goto dropfrag; |
} |
} |
} |
} |
if (af6 != (struct ip6asfrag *)q6) { |
if (af6 != (struct ip6asfrag *)q6) { |
i = (ip6af->ip6af_off + ip6af->ip6af_frglen) - af6->ip6af_off; |
i = (ip6af->ip6af_off + ip6af->ip6af_frglen) - af6->ip6af_off; |
if (i > 0) { |
if (i > 0) { |
|
#if 0 /* suppress the noisy log */ |
log(LOG_ERR, "%d bytes of a fragment from %s " |
log(LOG_ERR, "%d bytes of a fragment from %s " |
"overlaps the succeeding fragment", |
"overlaps the succeeding fragment", |
i, ip6_sprintf(&q6->ip6q_src)); |
i, ip6_sprintf(&q6->ip6q_src)); |
|
#endif |
|
free(ip6af, M_FTABLE); |
goto dropfrag; |
goto dropfrag; |
} |
} |
} |
} |