mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-03 07:25:18 +00:00
[trac998] Renamed createNetmask to internal::createMask
This commit is contained in:
@@ -36,7 +36,11 @@
|
|||||||
namespace isc {
|
namespace isc {
|
||||||
namespace acl {
|
namespace acl {
|
||||||
|
|
||||||
// Free functions
|
// Free functions. These are not supposed to be used outside this module,
|
||||||
|
// but are declared public for testing. To try to conceal them, they are
|
||||||
|
// put in an "internal" namespace.
|
||||||
|
|
||||||
|
namespace internal {
|
||||||
|
|
||||||
/// \brief Convert prefix length to mask
|
/// \brief Convert prefix length to mask
|
||||||
///
|
///
|
||||||
@@ -56,7 +60,7 @@ namespace acl {
|
|||||||
/// \exception OutOfRange prefixlen is too large for the data type.
|
/// \exception OutOfRange prefixlen is too large for the data type.
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
T createNetmask(size_t prefixlen) {
|
T createMask(size_t prefixlen) {
|
||||||
|
|
||||||
if (prefixlen == 0) {
|
if (prefixlen == 0) {
|
||||||
return (0);
|
return (0);
|
||||||
@@ -155,6 +159,8 @@ splitIPAddress(const std::string& prefix) {
|
|||||||
return (std::make_pair(components[0], prefixlen));
|
return (std::make_pair(components[0], prefixlen));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace internal
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// \brief IP Check
|
/// \brief IP Check
|
||||||
@@ -277,7 +283,8 @@ public:
|
|||||||
// General address prefix. Split into address part and prefix
|
// General address prefix. Split into address part and prefix
|
||||||
// length.
|
// length.
|
||||||
|
|
||||||
std::pair<std::string, int> result = splitIPAddress(addrprfx);
|
std::pair<std::string, int> result =
|
||||||
|
internal::splitIPAddress(addrprfx);
|
||||||
|
|
||||||
// Try to convert the address. If successful, the result is in
|
// Try to convert the address. If successful, the result is in
|
||||||
// network-byte order (most significant components at lower
|
// network-byte order (most significant components at lower
|
||||||
@@ -505,7 +512,7 @@ private:
|
|||||||
bits_left -= 8;
|
bits_left -= 8;
|
||||||
|
|
||||||
} else if (bits_left > 0) {
|
} else if (bits_left > 0) {
|
||||||
mask_.byte[++i] = createNetmask<uint8_t>(bits_left);
|
mask_.byte[++i] = internal::createMask<uint8_t>(bits_left);
|
||||||
bits_left = 0;
|
bits_left = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
#include <boost/scoped_ptr.hpp>
|
#include <boost/scoped_ptr.hpp>
|
||||||
|
|
||||||
using namespace isc::acl;
|
using namespace isc::acl;
|
||||||
|
using namespace isc::acl::internal;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
// Simple struct holding either an IPV4 or IPV6 address. This is the "Context"
|
// Simple struct holding either an IPV4 or IPV6 address. This is the "Context"
|
||||||
@@ -94,30 +95,30 @@ bool IPCheck<GeneralAddress>::matches(const GeneralAddress& addr) const {
|
|||||||
|
|
||||||
/// *** Free Function Tests ***
|
/// *** Free Function Tests ***
|
||||||
|
|
||||||
// Test the createNetmask() function.
|
// Test the createMask() function.
|
||||||
TEST(IPFunctionCheck, CreateNetmask) {
|
TEST(IPFunctionCheck, CreateMask) {
|
||||||
|
|
||||||
// 8-bit tests: invalid arguments should throw.
|
// 8-bit tests: invalid arguments should throw.
|
||||||
EXPECT_THROW(createNetmask<uint8_t>(9), isc::OutOfRange);
|
EXPECT_THROW(createMask<uint8_t>(9), isc::OutOfRange);
|
||||||
|
|
||||||
// Check on all possible 8-bit values. Use a signed type to generate a
|
// Check on all possible 8-bit values. Use a signed type to generate a
|
||||||
// variable with the most significant bits set (right-shifting will
|
// variable with the most significant bits set (right-shifting will
|
||||||
// introduce additional bits).
|
// introduce additional bits).
|
||||||
int8_t expected8 = 0x80;
|
int8_t expected8 = 0x80;
|
||||||
for (size_t i = 1; i <= 8; ++i, expected8 >>= 1) {
|
for (size_t i = 1; i <= 8; ++i, expected8 >>= 1) {
|
||||||
EXPECT_EQ(static_cast<uint8_t>(expected8), createNetmask<uint8_t>(i));
|
EXPECT_EQ(static_cast<uint8_t>(expected8), createMask<uint8_t>(i));
|
||||||
}
|
}
|
||||||
EXPECT_EQ(0, createNetmask<uint8_t>(0));
|
EXPECT_EQ(0, createMask<uint8_t>(0));
|
||||||
|
|
||||||
// Do the same for 32 bits.
|
// Do the same for 32 bits.
|
||||||
EXPECT_THROW(createNetmask<int32_t>(33), isc::OutOfRange);
|
EXPECT_THROW(createMask<int32_t>(33), isc::OutOfRange);
|
||||||
|
|
||||||
int32_t expected32 = 0x80000000;
|
int32_t expected32 = 0x80000000;
|
||||||
for (size_t i = 1; i <= 32; ++i, expected32 >>= 1) {
|
for (size_t i = 1; i <= 32; ++i, expected32 >>= 1) {
|
||||||
EXPECT_EQ(static_cast<uint32_t>(expected32),
|
EXPECT_EQ(static_cast<uint32_t>(expected32),
|
||||||
createNetmask<uint32_t>(i));
|
createMask<uint32_t>(i));
|
||||||
}
|
}
|
||||||
EXPECT_EQ(0, createNetmask<uint32_t>(0));
|
EXPECT_EQ(0, createMask<uint32_t>(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test the splitIPAddress() function.
|
// Test the splitIPAddress() function.
|
||||||
|
Reference in New Issue
Block a user