|  | #include "dhcp_configuration.hpp" | 
|  |  | 
|  | #include "config_parser.hpp" | 
|  | #include "network_manager.hpp" | 
|  |  | 
|  | #include <phosphor-logging/elog-errors.hpp> | 
|  | #include <phosphor-logging/lg2.hpp> | 
|  | #include <xyz/openbmc_project/Common/error.hpp> | 
|  |  | 
|  | namespace phosphor | 
|  | { | 
|  | namespace network | 
|  | { | 
|  | namespace dhcp | 
|  | { | 
|  |  | 
|  | using namespace phosphor::network; | 
|  | using namespace sdbusplus::xyz::openbmc_project::Common::Error; | 
|  |  | 
|  | Configuration::Configuration( | 
|  | sdbusplus::bus_t& bus, stdplus::const_zstring objPath, | 
|  | stdplus::PinnedRef<EthernetInterface> parent, DHCPType type) : | 
|  | Iface(bus, objPath.c_str(), Iface::action::defer_emit), parent(parent) | 
|  | { | 
|  | config::Parser conf(config::pathForIntfConf( | 
|  | parent.get().manager.get().getConfDir(), parent.get().interfaceName())); | 
|  | ConfigIntf::domainEnabled(getDHCPProp(conf, type, "UseDomains"), true); | 
|  | ConfigIntf::dnsEnabled(getDHCPProp(conf, type, "UseDNS"), true); | 
|  | ConfigIntf::ntpEnabled(getDHCPProp(conf, type, "UseNTP"), true); | 
|  | ConfigIntf::hostNameEnabled(getDHCPProp(conf, type, "UseHostname"), true); | 
|  | ConfigIntf::sendHostNameEnabled(getDHCPProp(conf, type, "SendHostname"), | 
|  | true); | 
|  |  | 
|  | emit_object_added(); | 
|  | } | 
|  |  | 
|  | bool Configuration::sendHostNameEnabled(bool value) | 
|  | { | 
|  | if (value == sendHostNameEnabled()) | 
|  | { | 
|  | return value; | 
|  | } | 
|  |  | 
|  | auto name = ConfigIntf::sendHostNameEnabled(value); | 
|  | parent.get().writeConfigurationFile(); | 
|  | parent.get().reloadConfigs(); | 
|  | return name; | 
|  | } | 
|  |  | 
|  | bool Configuration::hostNameEnabled(bool value) | 
|  | { | 
|  | if (value == hostNameEnabled()) | 
|  | { | 
|  | return value; | 
|  | } | 
|  |  | 
|  | auto name = ConfigIntf::hostNameEnabled(value); | 
|  | parent.get().writeConfigurationFile(); | 
|  | parent.get().reloadConfigs(); | 
|  |  | 
|  | return name; | 
|  | } | 
|  |  | 
|  | bool Configuration::ntpEnabled(bool value) | 
|  | { | 
|  | if (value == ntpEnabled()) | 
|  | { | 
|  | return value; | 
|  | } | 
|  |  | 
|  | auto ntp = ConfigIntf::ntpEnabled(value); | 
|  | parent.get().writeConfigurationFile(); | 
|  | parent.get().reloadConfigs(); | 
|  |  | 
|  | return ntp; | 
|  | } | 
|  |  | 
|  | bool Configuration::dnsEnabled(bool value) | 
|  | { | 
|  | if (value == dnsEnabled()) | 
|  | { | 
|  | return value; | 
|  | } | 
|  |  | 
|  | auto dns = ConfigIntf::dnsEnabled(value); | 
|  | parent.get().writeConfigurationFile(); | 
|  | parent.get().reloadConfigs(); | 
|  |  | 
|  | return dns; | 
|  | } | 
|  |  | 
|  | bool Configuration::domainEnabled(bool value) | 
|  | { | 
|  | if (value == domainEnabled()) | 
|  | { | 
|  | return value; | 
|  | } | 
|  |  | 
|  | auto domain = ConfigIntf::domainEnabled(value); | 
|  | parent.get().writeConfigurationFile(); | 
|  | parent.get().reloadConfigs(); | 
|  |  | 
|  | return domain; | 
|  | } | 
|  |  | 
|  | } // namespace dhcp | 
|  | } // namespace network | 
|  | } // namespace phosphor |