From 92f0249d2b7179440c46b1913e84758c6959d9f1 Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Sun, 21 Feb 2016 18:20:06 -0800 Subject: [PATCH] Cleanup IPv4Reassembler --- include/tins/ip_reassembler.h | 18 +++++++++++++----- src/ip_reassembler.cpp | 9 +++++++-- tests/src/ip_reassembler.cpp | 2 +- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/include/tins/ip_reassembler.h b/include/tins/ip_reassembler.h index 83a2db7..52bb615 100644 --- a/include/tins/ip_reassembler.h +++ b/include/tins/ip_reassembler.h @@ -120,26 +120,34 @@ public: /** * The status of each processed packet. */ - enum packet_status { + enum PacketStatus { NOT_FRAGMENTED, ///< The given packet is not fragmented FRAGMENTED, ///< The given packet is fragmented and can't be reassembled yet REASSEMBLED ///< The given packet was fragmented but is now reassembled }; + TINS_DEPRECATED(typedef PacketStatus packet_status); + /** * The type used to represent the overlapped segment reassembly * technique to be used. */ - enum overlapping_technique { + enum OverlappingTechnique { NONE }; + /** + * Default constructor + */ + IPv4Reassembler(); + /** * Constructs an IPV4Reassembler. + * * \param technique The technique to be used for reassembling * overlapped fragments. */ - IPv4Reassembler(overlapping_technique technique = NONE); + IPv4Reassembler(OverlappingTechnique technique); /** * \brief Processes a PDU and tries to reassemble it. @@ -155,7 +163,7 @@ public: * fragmented or REASSEMBLED if the packet was fragmented * but has now been reassembled. */ - packet_status process(PDU& pdu); + PacketStatus process(PDU& pdu); /** * Removes all of the packets and data stored. @@ -182,7 +190,7 @@ private: address_pair make_address_pair(IPv4Address addr1, IPv4Address addr2) const; streams_type streams_; - overlapping_technique technique_; + OverlappingTechnique technique_; }; /** diff --git a/src/ip_reassembler.cpp b/src/ip_reassembler.cpp index 02e355e..df784c2 100644 --- a/src/ip_reassembler.cpp +++ b/src/ip_reassembler.cpp @@ -94,12 +94,17 @@ uint16_t IPv4Stream::extract_offset(const IP* ip) { } // Internals -IPv4Reassembler::IPv4Reassembler(overlapping_technique technique) +IPv4Reassembler::IPv4Reassembler() +: technique_(NONE) { + +} + +IPv4Reassembler::IPv4Reassembler(OverlappingTechnique technique) : technique_(technique) { } -IPv4Reassembler::packet_status IPv4Reassembler::process(PDU& pdu) { +IPv4Reassembler::PacketStatus IPv4Reassembler::process(PDU& pdu) { IP* ip = pdu.find_pdu(); if (ip && ip->inner_pdu()) { // There's fragmentation diff --git a/tests/src/ip_reassembler.cpp b/tests/src/ip_reassembler.cpp index 68b9832..a673d6d 100644 --- a/tests/src/ip_reassembler.cpp +++ b/tests/src/ip_reassembler.cpp @@ -47,7 +47,7 @@ void IPv4ReassemblerTest::test_packets(const std::vector(vt.size() - 1), i);