1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-28 20:44:26 +01:00

Add remove_option member to IP, TCP, Dot11, ICMPv6, DHCP and DHCPv6

This commit is contained in:
Matias Fontanini
2015-08-17 15:19:03 -07:00
parent ab61907a06
commit 6dec68128d
19 changed files with 386 additions and 59 deletions

View File

@@ -695,3 +695,26 @@ TEST_F(IPTest, SpoofedOptions) {
EXPECT_EQ(3U, pdu.options().size());
EXPECT_EQ(pdu.serialize().size(), pdu.size());
}
TEST_F(IPTest, RemoveOption) {
IP ip(TINS_DEFAULT_TEST_IP);
PDU::serialization_type old_buffer = ip.serialize();
// Add a record route option
IP::record_route_type record_route(0x2d);
record_route.routes.push_back("192.168.2.3");
record_route.routes.push_back("192.168.5.1");
ip.record_route(record_route);
// Add a lsrr option
IP::lsrr_type lsrr(0x2d);
lsrr.routes.push_back("192.168.2.3");
lsrr.routes.push_back("192.168.5.1");
ip.lsrr(lsrr);
EXPECT_TRUE(ip.remove_option(IP::option_identifier(IP::LSRR, IP::CONTROL, 1)));
EXPECT_TRUE(ip.remove_option(IP::option_identifier(IP::RR, IP::CONTROL, 0)));
PDU::serialization_type new_buffer = ip.serialize();
EXPECT_EQ(old_buffer, new_buffer);
}