mirror of
https://github.com/mfontanini/libtins
synced 2026-01-23 02:35:57 +01:00
@@ -161,7 +161,9 @@ void EthernetII::write_serialization(uint8_t *buffer, uint32_t total_sz, const P
|
||||
Constants::Ethernet::e flag = Internals::pdu_flag_to_ether_type(
|
||||
inner_pdu()->pdu_type()
|
||||
);
|
||||
payload_type(static_cast<uint16_t>(flag));
|
||||
if (flag != Constants::Ethernet::UNKNOWN) {
|
||||
payload_type(static_cast<uint16_t>(flag));
|
||||
}
|
||||
}
|
||||
memcpy(buffer, &_eth, sizeof(ethhdr));
|
||||
uint32_t trailer = trailer_size();
|
||||
|
||||
@@ -158,3 +158,13 @@ TEST_F(EthernetIITest, EliminateEthernetPadding) {
|
||||
ASSERT_TRUE(eth.find_pdu<TCP>() != NULL);
|
||||
ASSERT_FALSE(eth.find_pdu<RawPDU>() != NULL);
|
||||
}
|
||||
|
||||
TEST_F(EthernetIITest, SerializePreservesGivenPayloadType) {
|
||||
EthernetII eth;
|
||||
uint32_t payload_size = 100;
|
||||
uint8_t payload[100] = {0};
|
||||
eth /= RawPDU(payload, payload_size);
|
||||
eth.payload_type(p_type);
|
||||
eth.serialize();
|
||||
EXPECT_EQ(p_type, eth.payload_type());
|
||||
}
|
||||
Reference in New Issue
Block a user