#include "dhcp_configuration.hpp" #include "config_parser.hpp" #include "network_manager.hpp" #include #include #include 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 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