From 64569e06a98e86dd0207051abc5d1dd567f9d638 Mon Sep 17 00:00:00 2001 From: Marcin Siodelski Date: Thu, 11 Dec 2014 17:15:38 +0100 Subject: [PATCH] [3564] Renamed hint to requested_address in allocation engine. --- src/lib/dhcpsrv/alloc_engine.cc | 27 ++++++++++++++------------- src/lib/dhcpsrv/alloc_engine.h | 4 ++-- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/lib/dhcpsrv/alloc_engine.cc b/src/lib/dhcpsrv/alloc_engine.cc index c3f97e92b9..18fdf3218b 100644 --- a/src/lib/dhcpsrv/alloc_engine.cc +++ b/src/lib/dhcpsrv/alloc_engine.cc @@ -515,7 +515,7 @@ AllocEngine::allocateLease4(const SubnetPtr& subnet, const ClientIdPtr& clientid ctx.subnet_ = subnet; ctx.clientid_ = clientid; ctx.hwaddr_ = hwaddr; - ctx.hint_ = hint; + ctx.requested_address_ = hint; ctx.fwd_dns_update_ = fwd_dns_update; ctx.rev_dns_update_ = rev_dns_update; ctx.hostname_ = hostname; @@ -530,8 +530,8 @@ AllocEngine::allocateLease4(const SubnetPtr& subnet, const ClientIdPtr& clientid // In some cases the client doesn't supply any address, e.g. when // it sends a DHCPDISCOVER. In such cases, we use the reserved // address as a hint. - if (ctx.hint_ == IOAddress("0.0.0.0")) { - ctx.hint_ = ctx.host_->getIPv4Reservation(); + if (ctx.requested_address_ == IOAddress("0.0.0.0")) { + ctx.requested_address_ = ctx.host_->getIPv4Reservation(); // If the client supplied an address we have to check if this // address is reserved for this client. If not, we will send @@ -542,7 +542,7 @@ AllocEngine::allocateLease4(const SubnetPtr& subnet, const ClientIdPtr& clientid // other than desired by the client. So, we don't return an // empty lease. } else if (!ctx.fake_allocation_ && - (ctx.hint_ != ctx.host_->getIPv4Reservation())) { + (ctx.requested_address_ != ctx.host_->getIPv4Reservation())) { return (Lease4Ptr()); } } @@ -587,7 +587,7 @@ AllocEngine::allocateLease4(const SubnetPtr& subnet, const ClientIdPtr& clientid // proceed with a new allocation. We will try to allocate a // reserved address or an address from a dynamic pool if there is // no reservation. - if (ctx.host_ || subnet->inPool(Lease::TYPE_V4, ctx.hint_)) { + if (ctx.host_ || subnet->inPool(Lease::TYPE_V4, ctx.requested_address_)) { // If a client is requesting specific IP address, but the // reservation was made for a different address the server returns // NAK to the client. By returning NULL lease here we indicate to @@ -596,15 +596,15 @@ AllocEngine::allocateLease4(const SubnetPtr& subnet, const ClientIdPtr& clientid // fake allocation (DHCPDISCOVER) because in this case the address // supplied by the client is only a hint. if (!ctx.fake_allocation_ && ctx.host_ && - (ctx.hint_ != IOAddress("0.0.0.0")) && - (ctx.host_->getIPv4Reservation() != ctx.hint_)) { + (ctx.requested_address_ != IOAddress("0.0.0.0")) && + (ctx.host_->getIPv4Reservation() != ctx.requested_address_)) { return (Lease4Ptr()); } // The reserved address always takes precedence over an address // supplied by the client (renewed address or requested). const IOAddress& candidate = ctx.host_ ? - ctx.host_->getIPv4Reservation() : ctx.hint_; + ctx.host_->getIPv4Reservation() : ctx.requested_address_; // Once we picked an address we want to allocate, we have to check // if this address is available. @@ -668,7 +668,8 @@ AllocEngine::allocateLease4(const SubnetPtr& subnet, const ClientIdPtr& clientid unsigned int i = attempts_; do { - IOAddress candidate = allocator->pickAddress(subnet, clientid, ctx.hint_); + IOAddress candidate = allocator->pickAddress(subnet, clientid, + ctx.requested_address_); // Check if this address is reserved. There is no need to check for // whom it is reserved, because if it has been reserved for us we would @@ -960,7 +961,7 @@ AllocEngine::replaceClientLease(Lease4Ptr& lease, Context4& ctx) { isc_throw(BadValue, "null subnet specified for replaceClientLease"); } - if (ctx.hint_ == IOAddress("0.0.0.0")) { + if (ctx.requested_address_ == IOAddress("0.0.0.0")) { isc_throw(BadValue, "zero address specified for the" " replaceClientLease"); } @@ -968,12 +969,12 @@ AllocEngine::replaceClientLease(Lease4Ptr& lease, Context4& ctx) { IOAddress prev_address = lease->addr_; if (!ctx.host_) { ConstHostPtr host = HostMgr::instance().get4(ctx.subnet_->getID(), - ctx.hint_); + ctx.requested_address_); if (host && ctx.hwaddr_ && (*host->getHWAddress() != *ctx.hwaddr_)) { ctx.interrupt_processing_ = true; return (Lease4Ptr()); } - lease->addr_ = ctx.hint_; + lease->addr_ = ctx.requested_address_; } else { lease->addr_ = ctx.host_->getIPv4Reservation(); @@ -1027,7 +1028,7 @@ AllocEngine::reallocateClientLease(Lease4Ptr& lease, ctx.old_lease_.reset(new Lease4(*lease)); if ((ctx.host_ && (ctx.host_->getIPv4Reservation() != lease->addr_)) || - (lease->addr_ != ctx.hint_)) { + (lease->addr_ != ctx.requested_address_)) { lease = replaceClientLease(lease, ctx); return (lease); diff --git a/src/lib/dhcpsrv/alloc_engine.h b/src/lib/dhcpsrv/alloc_engine.h index f617911c67..9c01512615 100644 --- a/src/lib/dhcpsrv/alloc_engine.h +++ b/src/lib/dhcpsrv/alloc_engine.h @@ -246,7 +246,7 @@ protected: /// /// If this address is set to 0 it indicates that this address /// is unspecified. - asiolink::IOAddress hint_; + asiolink::IOAddress requested_address_; /// @brief Perform forward DNS update. bool fwd_dns_update_; @@ -283,7 +283,7 @@ protected: /// @brief Default constructor. Context4() - : subnet_(), clientid_(), hwaddr_(), hint_("0.0.0.0"), + : subnet_(), clientid_(), hwaddr_(), requested_address_("0.0.0.0"), fwd_dns_update_(false), rev_dns_update_(false), hostname_(""), callout_handle_(), fake_allocation_(false), old_lease_(), host_(), interrupt_processing_(false) { -- 2.47.3