solaris policy for ipv6

remotes/origin/master-1.0.x
Jason Ish 16 years ago committed by Victor Julien
parent ce20c33634
commit d9380a8cb5

@ -759,6 +759,18 @@ Defrag6InsertFrag(DefragContext *dc, DefragTracker *tracker, Packet *p)
goto insert; goto insert;
} }
break; break;
case POLICY_SOLARIS:
if (frag_offset < prev->offset + prev->data_len) {
if (frag_offset >= prev->offset) {
ltrim = prev->offset + prev->data_len - frag_offset;
}
if ((frag_offset < prev->offset) &&
(frag_end >= prev->offset + prev->data_len)) {
prev->skip = 1;
}
goto insert;
}
break;
default: default:
break; break;
} }
@ -2055,6 +2067,41 @@ DefragSturgesNovakSolarisTest(void)
return DefragDoSturgesNovakTest(POLICY_SOLARIS, expected, sizeof(expected)); return DefragDoSturgesNovakTest(POLICY_SOLARIS, expected, sizeof(expected));
} }
static int
IPV6DefragSturgesNovakSolarisTest(void)
{
/* Expected data. */
u_char expected[] = {
"AAAAAAAA"
"AAAAAAAA"
"AAAAAAAA"
"JJJJJJJJ"
"BBBBBBBB"
"BBBBBBBB"
"CCCCCCCC"
"CCCCCCCC"
"CCCCCCCC"
"LLLLLLLL"
"LLLLLLLL"
"LLLLLLLL"
"MMMMMMMM"
"MMMMMMMM"
"MMMMMMMM"
"FFFFFFFF"
"FFFFFFFF"
"FFFFFFFF"
"GGGGGGGG"
"GGGGGGGG"
"HHHHHHHH"
"HHHHHHHH"
"IIIIIIII"
"QQQQQQQQ"
};
return IPV6DefragDoSturgesNovakTest(POLICY_SOLARIS, expected,
sizeof(expected));
}
static int static int
DefragSturgesNovakFirstTest(void) DefragSturgesNovakFirstTest(void)
{ {
@ -2229,6 +2276,8 @@ DefragRegisterTests(void)
IPV6DefragSturgesNovakLinuxTest, 1); IPV6DefragSturgesNovakLinuxTest, 1);
UtRegisterTest("IPV6DefragSturgesNovakWindowsTest", UtRegisterTest("IPV6DefragSturgesNovakWindowsTest",
IPV6DefragSturgesNovakWindowsTest, 1); IPV6DefragSturgesNovakWindowsTest, 1);
UtRegisterTest("IPV6DefragSturgesNovakSolarisTest",
IPV6DefragSturgesNovakSolarisTest, 1);
#endif /* UNITTESTS */ #endif /* UNITTESTS */
} }

Loading…
Cancel
Save