From 52c021ee0b0c6ad2128ed550c694aad0d11d4c3f Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 16:53:22 +0200 Subject: Adding upstream version 2.5.7. Signed-off-by: Daniel Baumann --- src/lib/dhcpsrv/cfg_4o6.cc | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/lib/dhcpsrv/cfg_4o6.cc (limited to 'src/lib/dhcpsrv/cfg_4o6.cc') diff --git a/src/lib/dhcpsrv/cfg_4o6.cc b/src/lib/dhcpsrv/cfg_4o6.cc new file mode 100644 index 0000000..3f69d3b --- /dev/null +++ b/src/lib/dhcpsrv/cfg_4o6.cc @@ -0,0 +1,51 @@ +// Copyright (C) 2017-2019 Internet Systems Consortium, Inc. ("ISC") +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include + +#include +#include +#include +#include +#include +#include + +using namespace isc::data; + +namespace isc { +namespace dhcp { + +ElementPtr +Cfg4o6::toElement() const { + ElementPtr result = Element::createMap(); + // Set 4o6-interface + result->set("4o6-interface", Element::create(iface4o6_)); + // Set 4o6-subnet + if (!subnet4o6_.get().first.isV6Zero() || (subnet4o6_.get().second != 128u)) { + std::ostringstream oss; + oss << subnet4o6_.get().first << "/" + << static_cast(subnet4o6_.get().second); + result->set("4o6-subnet", Element::create(oss.str())); + } else { + result->set("4o6-subnet", Element::create(std::string())); + } + // Set 4o6-interface-id + if (interface_id_) { + std::vector bin = interface_id_->toBinary(); + std::string iid; + iid.resize(bin.size()); + if (!bin.empty()) { + std::memcpy(&iid[0], &bin[0], bin.size()); + } + result->set("4o6-interface-id", Element::create(iid)); + } else { + result->set("4o6-interface-id", Element::create(std::string())); + } + return (result); +} + +} // end of isc::dhcp namespace +} // end of isc namespace -- cgit v1.2.3