]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[1955] Access perf_pktN and pktN class members via getters and setters.
authorMarcin Siodelski <marcin@isc.org>
Fri, 8 Jun 2012 11:55:34 +0000 (13:55 +0200)
committerMarcin Siodelski <marcin@isc.org>
Fri, 8 Jun 2012 11:55:34 +0000 (13:55 +0200)
Some of the pktN protected variables are still accessed directly in derived
classes thus warnings have been added in libs.

doc/Doxyfile
src/lib/dhcp/pkt4.h
src/lib/dhcp/pkt6.h
tests/tools/perfdhcp/perf_pkt4.cc
tests/tools/perfdhcp/perf_pkt4.h
tests/tools/perfdhcp/perf_pkt6.cc
tests/tools/perfdhcp/perf_pkt6.h
tests/tools/perfdhcp/pkt_transform.h
tests/tools/perfdhcp/tests/perf_pkt4_unittest.cc
tests/tools/perfdhcp/tests/perf_pkt6_unittest.cc

index 8730ae4c8d696c68a2ac8dbc7d00ad526d28462d..6d91bf273ded241c620b3574bf1600e75ec5d21a 100644 (file)
@@ -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
index c36f5bf3f8b124c2c7a597c59646aa5cb6c65f63..b72c03eb5bf30137da81512a2f5d2ee0c4903cd6 100644 (file)
@@ -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<uint8_t> 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
index 6cca573a87d12865fc6633f15cedac45b7de36fa..2612f270462f274c85829ba8c03d437aef21707d 100644 (file)
@@ -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
index 6d13eea968d358f67107fdb042f45a5a70d3b3ef..3f733afacc92cf4d9331e18558ebdd2796c96ca5 100644 (file)
@@ -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
index f7b918540b01a139e4a69b281a9f07be6b4dc26b..f4cc440773cf47e29a6c79c53e4545dc102bccd0 100644 (file)
@@ -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.
     ///
index 6d2d686cbc3f66f8834c6aeaff4c04b688035a65..24cfb931a9b3c294912bdb90caed523f0d38c4be 100644 (file)
@@ -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
index 8a814b5b179c9834cf78c19482266b436e5c97b3..94fe47bada36f3ee94d0ce89e2e8cdf23e3a6463 100644 (file)
@@ -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
     ///
index 4218dc13359e2388a2e9413b73f517f25a2fdacc..7fb19f48c4a4df8a5ffab3d07bb574aeb32853bc 100644 (file)
@@ -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
index fa0dc1edcc90bac761e37a28a5f22927acd26414..6de5a18323c53906b23472c5039171640e57af72 100644 (file)
@@ -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<PerfPkt4> 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<PerfPkt4> 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<PerfPkt4> pkt3(new PerfPkt4(data, sizeof(data)));
-    EXPECT_EQ(1, pkt3->getTransIdOffset());
+    EXPECT_EQ(1, pkt3->getTransidOffset());
 }
 
 TEST_F(PerfPkt4Test, RawPack) {
index f9c9dfe0d8c61491d412d5e4cd706a802ba92e82..8d00c63b13fc98eb3439325b585492ae2b2415f1 100644 (file)
@@ -113,7 +113,7 @@ TEST_F(PerfPkt6Test, Constructor) {
     boost::scoped_ptr<PerfPkt6> 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) {