BIND 10 trac2364, updated. a8cc78f205ee37f2c26a4bca3e82c6f74c22b9cb [2364] More changes in response to review

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Nov 26 13:30:51 UTC 2012


The branch, trac2364 has been updated
       via  a8cc78f205ee37f2c26a4bca3e82c6f74c22b9cb (commit)
      from  877c06b9535bded5ad197086df8383fdc0bd8101 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a8cc78f205ee37f2c26a4bca3e82c6f74c22b9cb
Author: Stephen Morris <stephen at isc.org>
Date:   Mon Nov 26 13:28:40 2012 +0000

    [2364] More changes in response to review
    
    Also change type of exception thrown by packX() if universe is incorrect.

-----------------------------------------------------------------------

Summary of changes:
 src/lib/dhcp/option.cc |   12 +++++++-----
 src/lib/dhcp/option.h  |   17 ++++++++++++-----
 2 files changed, 19 insertions(+), 10 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/dhcp/option.cc b/src/lib/dhcp/option.cc
index 3d1f1dc..b8ed6c2 100644
--- a/src/lib/dhcp/option.cc
+++ b/src/lib/dhcp/option.cc
@@ -63,7 +63,7 @@ void
 Option::check() {
     if ( (universe_ != V4) && (universe_ != V6) ) {
         isc_throw(BadValue, "Invalid universe type specified. "
-                  "Only V4 and V6 are allowed.");
+                  << "Only V4 and V6 are allowed.");
     }
 
     if (universe_ == V4) {
@@ -87,11 +87,13 @@ void Option::pack(isc::util::OutputBuffer& buf) {
     switch (universe_) {
     case V6:
         return (pack6(buf));
+
     case V4:
         return (pack4(buf));
+
     default:
-        isc_throw(BadValue, "Failed to pack " << type_ << " option. Do not "
-                  << "use this method for options other than DHCPv6.");
+        isc_throw(BadValue, "Failed to pack " << type_ << " option as the "
+                  << "universe type is unknown.");
     }
 }
 
@@ -115,7 +117,7 @@ Option::pack4(isc::util::OutputBuffer& buf) {
         LibDHCP::packOptions(buf, options_);
 
     } else {
-        isc_throw(OutOfRange, "Invalid universe type " << universe_);
+        isc_throw(BadValue, "Invalid universe type " << universe_);
     }
 
     return;
@@ -131,7 +133,7 @@ void Option::pack6(isc::util::OutputBuffer& buf) {
 
         LibDHCP::packOptions6(buf, options_);
     } else {
-        isc_throw(OutOfRange, "Invalid universe type " << universe_);
+        isc_throw(BadValue, "Invalid universe type " << universe_);
     }
     return;
 }
diff --git a/src/lib/dhcp/option.h b/src/lib/dhcp/option.h
index 920ef13..fc2ab96 100644
--- a/src/lib/dhcp/option.h
+++ b/src/lib/dhcp/option.h
@@ -119,7 +119,7 @@ public:
     /// This constructor takes vector<uint8_t>& which is used in cases
     /// when content of the option will be copied and stored within
     /// option object. V4 Options follow that approach already.
-    /// TODO Migrate V6 options to that approach.
+    /// @todo Migrate V6 options to that approach.
     ///
     /// @param u specifies universe (V4 or V6)
     /// @param type option type (0-255 for V4 and 0-65535 for V6)
@@ -131,7 +131,7 @@ public:
     /// This contructor is similar to the previous one, but it does not take
     /// the whole vector<uint8_t>, but rather subset of it.
     ///
-    /// TODO: This can be templated to use different containers, not just
+    /// @todo This can be templated to use different containers, not just
     /// vector. Prototype should look like this:
     /// template<typename InputIterator> Option(Universe u, uint16_t type,
     /// InputIterator first, InputIterator last);
@@ -160,19 +160,24 @@ public:
     /// byte after stored option (that is useful for writing options one after
     /// another). Used in DHCPv6 options.
     ///
-    /// TODO: Migrate DHCPv6 code to pack(OutputBuffer& buf) version
+    /// @todo Migrate DHCPv6 code to pack(OutputBuffer& buf) version
     ///
     /// @param buf pointer to a buffer
+    ///
+    /// @throw BadValid Universe of the option is neither V4 nor V6.
     virtual void pack(isc::util::OutputBuffer& buf);
 
     /// @brief Writes option in a wire-format to a buffer.
     ///
     /// Method will throw if option storing fails for some reason.
     ///
-    /// TODO Once old (DHCPv6) implementation is rewritten,
+    /// @todo Once old (DHCPv6) implementation is rewritten,
     /// unify pack4() and pack6() and rename them to just pack().
     ///
     /// @param buf output buffer (option will be stored there)
+    ///
+    /// @throw OutOfRange Option type is greater than 255.
+    /// @throw BadValid Universe is not V4.
     virtual void pack4(isc::util::OutputBuffer& buf);
 
     /// @brief Parses received buffer.
@@ -303,6 +308,8 @@ protected:
     /// defined suboptions. Version for building DHCPv4 options.
     ///
     /// @param buf output buffer (built options will be stored here)
+    ///
+    /// @throw BadValid Universe is not V6.
     virtual void pack6(isc::util::OutputBuffer& buf);
 
     /// @brief A private method used for option correctness.
@@ -324,7 +331,7 @@ protected:
     /// collection for storing suboptions
     OptionCollection options_;
 
-    /// TODO: probably 2 different containers have to be used for v4 (unique
+    /// @todo probably 2 different containers have to be used for v4 (unique
     /// options) and v6 (options with the same type can repeat)
 };
 



More information about the bind10-changes mailing list