Commit 6734961c authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[3692] Address review comments.

Replaced the do-while loop with the for loop in the allocateLease4. Also,
updated the copyright date.
parent b62a71db
......@@ -21,6 +21,7 @@
#include <hooks/hooks_manager.h>
#include <cstring>
#include <limits>
#include <vector>
#include <string.h>
......@@ -405,8 +406,13 @@ AllocEngine::allocateLeases6(const Subnet6Ptr& subnet, const DuidPtr& duid,
// left), but this has one major problem. We exactly control allocation
// moment, but we currently do not control expiration time at all
unsigned int i = attempts_;
do {
// Initialize the maximum number of attempts to pick and allocate an
// address. The value of 0 means "infinite", which is maximum uint32_t
// value.
uint32_t max_attempts = (attempts_ == 0) ?
std::numeric_limits<uint32_t>::max() : attempts_;
for (uint32_t i = 0; i < max_attempts; ++i) {
IOAddress candidate = allocator->pickAddress(subnet, duid, hint);
/// @todo: check if the address is reserved once we have host support
......@@ -461,11 +467,7 @@ AllocEngine::allocateLeases6(const Subnet6Ptr& subnet, const DuidPtr& duid,
return (collection);
}
}
// Continue trying allocation until we run out of attempts
// (or attempts are set to 0, which means infinite)
--i;
} while ((i > 0) || !attempts_);
}
// Unable to allocate an address, return an empty lease.
LOG_WARN(dhcpsrv_logger, DHCPSRV_ADDRESS6_ALLOC_FAIL).arg(attempts_);
......
// Copyright (C) 2012-2014 Internet Systems Consortium, Inc. ("ISC")
// Copyright (C) 2012-2015 Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment