diff options
Diffstat (limited to 'src/bin/dhcp4/tests/dhcp4_client.cc')
-rw-r--r-- | src/bin/dhcp4/tests/dhcp4_client.cc | 110 |
1 files changed, 55 insertions, 55 deletions
diff --git a/src/bin/dhcp4/tests/dhcp4_client.cc b/src/bin/dhcp4/tests/dhcp4_client.cc index dc80fb718a..a3c3436d74 100644 --- a/src/bin/dhcp4/tests/dhcp4_client.cc +++ b/src/bin/dhcp4/tests/dhcp4_client.cc @@ -87,6 +87,54 @@ Dhcp4Client::addRequestedAddress(const asiolink::IOAddress& addr) { } void +Dhcp4Client::appendClientId() { + if (!context_.query_) { + isc_throw(Dhcp4ClientError, "pointer to the query must not be NULL" + " when adding Client Identifier option"); + } + + if (clientid_) { + OptionPtr opt(new Option(Option::V4, DHO_DHCP_CLIENT_IDENTIFIER, + clientid_->getClientId())); + context_.query_->addOption(opt); + } +} + +void +Dhcp4Client::appendName() { + if (!context_.query_) { + isc_throw(Dhcp4ClientError, "pointer to the query must not be NULL" + " when adding FQDN or Hostname option"); + } + + if (fqdn_) { + context_.query_->addOption(fqdn_); + + } else if (hostname_) { + context_.query_->addOption(hostname_); + } +} + +void +Dhcp4Client::appendPRL() { + if (!context_.query_) { + isc_throw(Dhcp4ClientError, "pointer to the query must not be NULL" + " when adding option codes to the PRL option"); + + } else if (!requested_options_.empty()) { + // Include Parameter Request List if at least one option code + // has been specified to be requested. + OptionUint8ArrayPtr prl(new OptionUint8Array(Option::V4, + DHO_DHCP_PARAMETER_REQUEST_LIST)); + for (std::set<uint8_t>::const_iterator opt = requested_options_.begin(); + opt != requested_options_.end(); ++opt) { + prl->addValue(*opt); + } + context_.query_->addOption(prl); + } +} + +void Dhcp4Client::applyConfiguration() { Pkt4Ptr resp = context_.response_; if (!resp) { @@ -152,11 +200,11 @@ void Dhcp4Client::doDiscover(const boost::shared_ptr<IOAddress>& requested_addr) { context_.query_ = createMsg(DHCPDISCOVER); // Request options if any. - includePRL(); + appendPRL(); // Include FQDN or Hostname. - includeName(); + appendName(); // Include Client Identifier - includeClientId(); + appendClientId(); if (requested_addr) { addRequestedAddress(*requested_addr); } @@ -182,7 +230,7 @@ void Dhcp4Client::doInform(const bool set_ciaddr) { context_.query_ = createMsg(DHCPINFORM); // Request options if any. - includePRL(); + appendPRL(); // The client sending a DHCPINFORM message has an IP address obtained // by some other means, e.g. static configuration. The lease which we // are using here is most likely set by the createLease method. @@ -245,11 +293,11 @@ Dhcp4Client::doRequest() { } // Request options if any. - includePRL(); + appendPRL(); // Include FQDN or Hostname. - includeName(); + appendName(); // Include Client Identifier - includeClientId(); + appendClientId(); // Send the message to the server. sendMsg(context_.query_); // Expect response. @@ -271,20 +319,6 @@ Dhcp4Client::includeClientId(const std::string& clientid) { } void -Dhcp4Client::includeClientId() { - if (!context_.query_) { - isc_throw(Dhcp4ClientError, "pointer to the query must not be NULL" - " when adding Client Identifier option"); - } - - if (clientid_) { - OptionPtr opt(new Option(Option::V4, DHO_DHCP_CLIENT_IDENTIFIER, - clientid_->getClientId())); - context_.query_->addOption(opt); - } -} - -void Dhcp4Client::includeFQDN(const uint8_t flags, const std::string& fqdn_name, Option4ClientFqdn::DomainNameType fqdn_type) { fqdn_.reset(new Option4ClientFqdn(flags, Option4ClientFqdn::RCODE_CLIENT(), @@ -296,39 +330,6 @@ Dhcp4Client::includeHostname(const std::string& name) { hostname_.reset(new OptionString(Option::V4, DHO_HOST_NAME, name)); } -void -Dhcp4Client::includeName() { - if (!context_.query_) { - isc_throw(Dhcp4ClientError, "pointer to the query must not be NULL" - " when adding FQDN or Hostname option"); - } - - if (fqdn_) { - context_.query_->addOption(fqdn_); - - } else if (hostname_) { - context_.query_->addOption(hostname_); - } -} - -void -Dhcp4Client::includePRL() { - if (!context_.query_) { - isc_throw(Dhcp4ClientError, "pointer to the query must not be NULL" - " when adding option codes to the PRL option"); - - } else if (!requested_options_.empty()) { - // Include Parameter Request List if at least one option code - // has been specified to be requested. - OptionUint8ArrayPtr prl(new OptionUint8Array(Option::V4, - DHO_DHCP_PARAMETER_REQUEST_LIST)); - for (std::set<uint8_t>::const_iterator opt = requested_options_.begin(); - opt != requested_options_.end(); ++opt) { - prl->addValue(*opt); - } - context_.query_->addOption(prl); - } -} HWAddrPtr Dhcp4Client::generateHWAddr(const uint8_t htype) const { @@ -369,7 +370,6 @@ Dhcp4Client::requestOptions(const uint8_t option1, const uint8_t option2, requestOption(option3); } - Pkt4Ptr Dhcp4Client::receiveOneMsg() { // Return empty pointer if server hasn't responded. |