11bbe3d1eSWilliam A. Kennington III #include "dhcp_configuration.hpp" 21bbe3d1eSWilliam A. Kennington III 3e94c9ffcSWilliam A. Kennington III #include "config_parser.hpp" 41bbe3d1eSWilliam A. Kennington III #include "network_manager.hpp" 52e09d278SWilliam A. Kennington III #include "system_queries.hpp" 695530ec9SWilliam A. Kennington III #include "util.hpp" 71bbe3d1eSWilliam A. Kennington III 81bbe3d1eSWilliam A. Kennington III #include <phosphor-logging/elog-errors.hpp> 91bbe3d1eSWilliam A. Kennington III #include <phosphor-logging/log.hpp> 101bbe3d1eSWilliam A. Kennington III #include <xyz/openbmc_project/Common/error.hpp> 111bbe3d1eSWilliam A. Kennington III 121bbe3d1eSWilliam A. Kennington III namespace phosphor 131bbe3d1eSWilliam A. Kennington III { 141bbe3d1eSWilliam A. Kennington III namespace network 151bbe3d1eSWilliam A. Kennington III { 161bbe3d1eSWilliam A. Kennington III namespace dhcp 171bbe3d1eSWilliam A. Kennington III { 181bbe3d1eSWilliam A. Kennington III 191bbe3d1eSWilliam A. Kennington III using namespace phosphor::network; 201bbe3d1eSWilliam A. Kennington III using namespace phosphor::logging; 211bbe3d1eSWilliam A. Kennington III using namespace sdbusplus::xyz::openbmc_project::Common::Error; 22e94c9ffcSWilliam A. Kennington III 23be3bd2fcSWilliam A. Kennington III Configuration::Configuration(sdbusplus::bus_t& bus, 24be3bd2fcSWilliam A. Kennington III stdplus::const_zstring objPath, Manager& parent) : 25e94c9ffcSWilliam A. Kennington III Iface(bus, objPath.c_str(), Iface::action::defer_emit), 26e94c9ffcSWilliam A. Kennington III bus(bus), manager(parent) 27e94c9ffcSWilliam A. Kennington III { 28e94c9ffcSWilliam A. Kennington III config::Parser conf; 29e94c9ffcSWilliam A. Kennington III { 30fd862be8SWilliam A. Kennington III auto interfaces = system::getInterfaces(); 31fd862be8SWilliam A. Kennington III if (!interfaces.empty()) 32e94c9ffcSWilliam A. Kennington III { 33e94c9ffcSWilliam A. Kennington III conf.setFile(config::pathForIntfConf(manager.getConfDir(), 34fd862be8SWilliam A. Kennington III *interfaces[0].name)); 35e94c9ffcSWilliam A. Kennington III } 36e94c9ffcSWilliam A. Kennington III } 37e94c9ffcSWilliam A. Kennington III 38e94c9ffcSWilliam A. Kennington III ConfigIntf::dnsEnabled(getDHCPProp(conf, "UseDNS")); 39e94c9ffcSWilliam A. Kennington III ConfigIntf::ntpEnabled(getDHCPProp(conf, "UseNTP")); 40e94c9ffcSWilliam A. Kennington III ConfigIntf::hostNameEnabled(getDHCPProp(conf, "UseHostname")); 41e94c9ffcSWilliam A. Kennington III ConfigIntf::sendHostNameEnabled(getDHCPProp(conf, "SendHostname")); 42e94c9ffcSWilliam A. Kennington III emit_object_added(); 43e94c9ffcSWilliam A. Kennington III } 44e94c9ffcSWilliam A. Kennington III 451bbe3d1eSWilliam A. Kennington III bool Configuration::sendHostNameEnabled(bool value) 461bbe3d1eSWilliam A. Kennington III { 471bbe3d1eSWilliam A. Kennington III if (value == sendHostNameEnabled()) 481bbe3d1eSWilliam A. Kennington III { 491bbe3d1eSWilliam A. Kennington III return value; 501bbe3d1eSWilliam A. Kennington III } 511bbe3d1eSWilliam A. Kennington III 521bbe3d1eSWilliam A. Kennington III auto name = ConfigIntf::sendHostNameEnabled(value); 53bd649af9SWilliam A. Kennington III 541bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 55*ffab00d0SWilliam A. Kennington III manager.reloadConfigsNoRefresh(); 561bbe3d1eSWilliam A. Kennington III 571bbe3d1eSWilliam A. Kennington III return name; 581bbe3d1eSWilliam A. Kennington III } 591bbe3d1eSWilliam A. Kennington III 601bbe3d1eSWilliam A. Kennington III bool Configuration::hostNameEnabled(bool value) 611bbe3d1eSWilliam A. Kennington III { 621bbe3d1eSWilliam A. Kennington III if (value == hostNameEnabled()) 631bbe3d1eSWilliam A. Kennington III { 641bbe3d1eSWilliam A. Kennington III return value; 651bbe3d1eSWilliam A. Kennington III } 661bbe3d1eSWilliam A. Kennington III 671bbe3d1eSWilliam A. Kennington III auto name = ConfigIntf::hostNameEnabled(value); 681bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 69*ffab00d0SWilliam A. Kennington III manager.reloadConfigsNoRefresh(); 701bbe3d1eSWilliam A. Kennington III 711bbe3d1eSWilliam A. Kennington III return name; 721bbe3d1eSWilliam A. Kennington III } 731bbe3d1eSWilliam A. Kennington III 741bbe3d1eSWilliam A. Kennington III bool Configuration::ntpEnabled(bool value) 751bbe3d1eSWilliam A. Kennington III { 761bbe3d1eSWilliam A. Kennington III if (value == ntpEnabled()) 771bbe3d1eSWilliam A. Kennington III { 781bbe3d1eSWilliam A. Kennington III return value; 791bbe3d1eSWilliam A. Kennington III } 801bbe3d1eSWilliam A. Kennington III 811bbe3d1eSWilliam A. Kennington III auto ntp = ConfigIntf::ntpEnabled(value); 821bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 83*ffab00d0SWilliam A. Kennington III manager.reloadConfigsNoRefresh(); 841bbe3d1eSWilliam A. Kennington III 851bbe3d1eSWilliam A. Kennington III return ntp; 861bbe3d1eSWilliam A. Kennington III } 871bbe3d1eSWilliam A. Kennington III 881bbe3d1eSWilliam A. Kennington III bool Configuration::dnsEnabled(bool value) 891bbe3d1eSWilliam A. Kennington III { 901bbe3d1eSWilliam A. Kennington III if (value == dnsEnabled()) 911bbe3d1eSWilliam A. Kennington III { 921bbe3d1eSWilliam A. Kennington III return value; 931bbe3d1eSWilliam A. Kennington III } 941bbe3d1eSWilliam A. Kennington III 951bbe3d1eSWilliam A. Kennington III auto dns = ConfigIntf::dnsEnabled(value); 961bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 97*ffab00d0SWilliam A. Kennington III manager.reloadConfigsNoRefresh(); 981bbe3d1eSWilliam A. Kennington III 991bbe3d1eSWilliam A. Kennington III return dns; 1001bbe3d1eSWilliam A. Kennington III } 1011bbe3d1eSWilliam A. Kennington III 1021bbe3d1eSWilliam A. Kennington III } // namespace dhcp 1031bbe3d1eSWilliam A. Kennington III } // namespace network 1041bbe3d1eSWilliam A. Kennington III } // namespace phosphor 105