From: Marcin Siodelski Date: Fri, 8 Jun 2012 11:55:34 +0000 (+0200) Subject: [1955] Access perf_pktN and pktN class members via getters and setters. X-Git-Tag: trac2351_base~226^2~58^2~6^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5496d551ef264130bb017a99906410fa27045cd9;p=thirdparty%2Fkea.git [1955] Access perf_pktN and pktN class members via getters and setters. Some of the pktN protected variables are still accessed directly in derived classes thus warnings have been added in libs. --- diff --git a/doc/Doxyfile b/doc/Doxyfile index 8730ae4c8d..6d91bf273d 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -579,7 +579,7 @@ INPUT = ../src/lib/exceptions ../src/lib/cc \ ../src/lib/testutils ../src/lib/cache ../src/lib/server_common/ \ ../src/bin/sockcreator/ ../src/lib/util/ ../src/lib/util/io/ \ ../src/lib/resolve ../src/lib/acl ../src/bin/dhcp6 ../src/lib/dhcp \ - ../src/bin/dhcp4 devel + ../src/bin/dhcp4 ../tests/tools/perfdhcp devel # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is diff --git a/src/lib/dhcp/pkt4.h b/src/lib/dhcp/pkt4.h index c36f5bf3f8..b72c03eb5b 100644 --- a/src/lib/dhcp/pkt4.h +++ b/src/lib/dhcp/pkt4.h @@ -204,6 +204,11 @@ public: void setGiaddr(const isc::asiolink::IOAddress& giaddr) { giaddr_ = giaddr; }; + /// @brief Sets transaction-id value + /// + /// @param transid transaction-id to be set. + void setTransid(uint32_t transid) { transid_ = transid; } + /// @brief Returns value of transaction-id field. /// /// @return transaction-id @@ -488,12 +493,26 @@ protected: // end of real DHCPv4 fields /// output buffer (used during message transmission) + /// + /// @warning This protected member is accessed by derived + /// classes directly. One of such derived classes is + /// @ref perfdhcp::PerfPkt4. The impact on derived clasess' + /// behavior must be taken into consideration before making + /// changes to this member such as access scope restriction or + /// data format change etc. isc::util::OutputBuffer bufferOut_; /// that's the data of input buffer used in RX packet. Note that /// InputBuffer does not store the data itself, but just expects that /// data will be valid for the whole life of InputBuffer. Therefore we /// need to keep the data around. + /// + /// @warning This protected member is accessed by derived + /// classes directly. One of such derived classes is + /// @ref perfdhcp::PerfPkt4. The impact on derived clasess' + /// behavior must be taken into consideration before making + /// changes to this member such as access scope restriction or + /// data format change etc. std::vector data_; /// message type (e.g. 1=DHCPDISCOVER) @@ -502,6 +521,13 @@ protected: uint8_t msg_type_; /// collection of options present in this message + /// + /// @warnig This protected member is accessed by derived + /// classes directly. One of such derived classes is + /// @ref perfdhcp::PerfPkt4. The impact on derived clasess' + /// behavior must be taken into consideration before making + /// changes to this member such as access scope restriction or + /// data format change etc. isc::dhcp::Option::OptionCollection options_; /// packet timestamp diff --git a/src/lib/dhcp/pkt6.h b/src/lib/dhcp/pkt6.h index 6cca573a87..2612f27046 100644 --- a/src/lib/dhcp/pkt6.h +++ b/src/lib/dhcp/pkt6.h @@ -131,6 +131,11 @@ public: /// @param type message type to be set void setType(uint8_t type) { msg_type_=type; }; + /// @brief Sets transaction-id value + /// + /// @param transid transaction-id to be set. + void setTransid(uint32_t transid) { transid_ = transid; } + /// Returns value of transaction-id field /// /// @return transaction-id @@ -241,6 +246,13 @@ public: /// TODO Need to implement getOptions() as well /// collection of options present in this message + /// + /// @warning This protected member is accessed by derived + /// classes directly. One of such derived classes is + /// @ref perfdhcp::PerfPkt6. The impact on derived clasess' + /// behavior must be taken into consideration before making + /// changes to this member such as access scope restriction or + /// data format change etc. isc::dhcp::Option::OptionCollection options_; /// @brief Update packet timestamp. @@ -296,6 +308,13 @@ protected: uint32_t transid_; /// unparsed data (in received packets) + /// + /// @warning This protected member is accessed by derived + /// classes directly. One of such derived classes is + /// @ref perfdhcp::PerfPkt6. The impact on derived clasess' + /// behavior must be taken into consideration before making + /// changes to this member such as access scope restriction or + /// data format change etc. OptionBuffer data_; /// name of the network interface the packet was received/to be sent over @@ -322,6 +341,13 @@ protected: uint16_t remote_port_; /// output buffer (used during message transmission) + /// + /// @warning This protected member is accessed by derived + /// classes directly. One of such derived classes is + /// @ref perfdhcp::PerfPkt6. The impact on derived clasess' + /// behavior must be taken into consideration before making + /// changes to this member such as access scope restriction or + /// data format change etc. isc::util::OutputBuffer bufferOut_; /// packet timestamp diff --git a/tests/tools/perfdhcp/perf_pkt4.cc b/tests/tools/perfdhcp/perf_pkt4.cc index 6d13eea968..3f733afacc 100644 --- a/tests/tools/perfdhcp/perf_pkt4.cc +++ b/tests/tools/perfdhcp/perf_pkt4.cc @@ -31,7 +31,7 @@ PerfPkt4::PerfPkt4(const uint8_t* buf, uint32_t transid) : Pkt4(buf, len), transid_offset_(transid_offset) { - transid_ = transid; + setTransid(transid); } bool @@ -39,18 +39,23 @@ PerfPkt4::rawPack() { return (PktTransform::pack(dhcp::Option::V4, data_, options_, - transid_offset_, - transid_, + getTransidOffset(), + getTransid(), bufferOut_)); } bool PerfPkt4::rawUnpack() { - return (PktTransform::unpack(dhcp::Option::V4, - data_, - options_, - transid_offset_, - transid_)); + uint32_t transid = getTransid(); + bool res = PktTransform::unpack(dhcp::Option::V4, + data_, + options_, + getTransidOffset(), + transid); + if (res) { + setTransid(transid); + } + return (res); } } // namespace perfdhcp diff --git a/tests/tools/perfdhcp/perf_pkt4.h b/tests/tools/perfdhcp/perf_pkt4.h index f7b918540b..f4cc440773 100644 --- a/tests/tools/perfdhcp/perf_pkt4.h +++ b/tests/tools/perfdhcp/perf_pkt4.h @@ -74,7 +74,7 @@ public: /// \brief Returns transaction id offset in packet buffer /// /// \return Transaction ID offset in packet buffer - size_t getTransIdOffset() const { return transid_offset_; }; + size_t getTransidOffset() const { return transid_offset_; }; /// \brief Prepares on-wire format from raw buffer. /// diff --git a/tests/tools/perfdhcp/perf_pkt6.cc b/tests/tools/perfdhcp/perf_pkt6.cc index 6d2d686cbc..24cfb931a9 100644 --- a/tests/tools/perfdhcp/perf_pkt6.cc +++ b/tests/tools/perfdhcp/perf_pkt6.cc @@ -33,7 +33,7 @@ PerfPkt6::PerfPkt6(const uint8_t* buf, uint32_t transid) : Pkt6(buf, len, Pkt6::UDP), transid_offset_(transid_offset) { - transid_ = transid; + setTransid(transid); } bool @@ -41,18 +41,23 @@ PerfPkt6::rawPack() { return (PktTransform::pack(dhcp::Option::V6, data_, options_, - transid_offset_, - transid_, + getTransidOffset(), + getTransid(), bufferOut_)); } bool PerfPkt6::rawUnpack() { - return (PktTransform::unpack(dhcp::Option::V6, - data_, - options_, - transid_offset_, - transid_)); + uint32_t transid = getTransid(); + bool res = PktTransform::unpack(dhcp::Option::V6, + data_, + options_, + getTransidOffset(), + transid); + if (res) { + setTransid(transid); + } + return (res); } } // namespace perfdhcp diff --git a/tests/tools/perfdhcp/perf_pkt6.h b/tests/tools/perfdhcp/perf_pkt6.h index 8a814b5b17..94fe47bada 100644 --- a/tests/tools/perfdhcp/perf_pkt6.h +++ b/tests/tools/perfdhcp/perf_pkt6.h @@ -74,7 +74,7 @@ public: /// \brief Returns transaction id offset in packet buffer /// /// \return Transaction ID offset in the packet buffer. - size_t getTransIdOffset() const { return transid_offset_; }; + size_t getTransidOffset() const { return transid_offset_; }; /// \brief Prepares on-wire format from raw buffer /// diff --git a/tests/tools/perfdhcp/pkt_transform.h b/tests/tools/perfdhcp/pkt_transform.h index 4218dc1335..7fb19f48c4 100644 --- a/tests/tools/perfdhcp/pkt_transform.h +++ b/tests/tools/perfdhcp/pkt_transform.h @@ -57,7 +57,7 @@ public: /// \param in_buffer Input buffer holding intial packet /// data, this can be directly read from template file /// \param options Options collection with offsets - /// \param transid_Offset offset of transaction id in a packet, + /// \param transid_offset offset of transaction id in a packet, /// transaction ID will be written to output buffer at this /// offset /// \param transid Transaction ID value diff --git a/tests/tools/perfdhcp/tests/perf_pkt4_unittest.cc b/tests/tools/perfdhcp/tests/perf_pkt4_unittest.cc index fa0dc1edcc..6de5a18323 100644 --- a/tests/tools/perfdhcp/tests/perf_pkt4_unittest.cc +++ b/tests/tools/perfdhcp/tests/perf_pkt4_unittest.cc @@ -121,18 +121,18 @@ TEST_F(PerfPkt4Test, Constructor) { // Test constructor to be used for incoming messages. // Use default (1) offset value and don't specify transaction id. boost::scoped_ptr pkt1(new PerfPkt4(data, sizeof(data), 1)); - EXPECT_EQ(1, pkt1->getTransIdOffset()); + EXPECT_EQ(1, pkt1->getTransidOffset()); // Test constructor to be used for outgoing messages. // Use non-zero offset and specify transaction id. boost::scoped_ptr pkt2(new PerfPkt4(data, sizeof(data), 10, 0x010203)); EXPECT_EQ(0x010203, pkt2->getTransid()); - EXPECT_EQ(10, pkt2->getTransIdOffset()); + EXPECT_EQ(10, pkt2->getTransidOffset()); // Test default constructor. Transaction id offset is expected to be 1. boost::scoped_ptr pkt3(new PerfPkt4(data, sizeof(data))); - EXPECT_EQ(1, pkt3->getTransIdOffset()); + EXPECT_EQ(1, pkt3->getTransidOffset()); } TEST_F(PerfPkt4Test, RawPack) { diff --git a/tests/tools/perfdhcp/tests/perf_pkt6_unittest.cc b/tests/tools/perfdhcp/tests/perf_pkt6_unittest.cc index f9c9dfe0d8..8d00c63b13 100644 --- a/tests/tools/perfdhcp/tests/perf_pkt6_unittest.cc +++ b/tests/tools/perfdhcp/tests/perf_pkt6_unittest.cc @@ -113,7 +113,7 @@ TEST_F(PerfPkt6Test, Constructor) { boost::scoped_ptr pkt1(new PerfPkt6(data, sizeof(data))); EXPECT_EQ(6, pkt1->getData().size()); EXPECT_EQ(0, memcmp(&pkt1->getData()[0], data, sizeof(data))); - EXPECT_EQ(1, pkt1->getTransIdOffset()); + EXPECT_EQ(1, pkt1->getTransidOffset()); // Test constructor to be used for outgoing messages. // Use non-zero offset and specify transaction id. @@ -122,7 +122,7 @@ TEST_F(PerfPkt6Test, Constructor) { EXPECT_EQ(6, pkt2->getData().size()); EXPECT_EQ(0, memcmp(&pkt2->getData()[0], data, sizeof(data))); EXPECT_EQ(0x010203, pkt2->getTransid()); - EXPECT_EQ(10, pkt2->getTransIdOffset()); + EXPECT_EQ(10, pkt2->getTransidOffset()); } TEST_F(PerfPkt6Test, RawPackUnpack) {