11bbe3d1eSWilliam A. Kennington III #include "dhcp_configuration.hpp" 21bbe3d1eSWilliam A. Kennington III 3*e94c9ffcSWilliam A. Kennington III #include "config_parser.hpp" 41bbe3d1eSWilliam A. Kennington III #include "network_manager.hpp" 51bbe3d1eSWilliam A. Kennington III 61bbe3d1eSWilliam A. Kennington III #include <phosphor-logging/elog-errors.hpp> 71bbe3d1eSWilliam A. Kennington III #include <phosphor-logging/log.hpp> 81bbe3d1eSWilliam A. Kennington III #include <xyz/openbmc_project/Common/error.hpp> 91bbe3d1eSWilliam A. Kennington III 101bbe3d1eSWilliam A. Kennington III namespace phosphor 111bbe3d1eSWilliam A. Kennington III { 121bbe3d1eSWilliam A. Kennington III namespace network 131bbe3d1eSWilliam A. Kennington III { 141bbe3d1eSWilliam A. Kennington III namespace dhcp 151bbe3d1eSWilliam A. Kennington III { 161bbe3d1eSWilliam A. Kennington III 171bbe3d1eSWilliam A. Kennington III using namespace phosphor::network; 181bbe3d1eSWilliam A. Kennington III using namespace phosphor::logging; 191bbe3d1eSWilliam A. Kennington III using namespace sdbusplus::xyz::openbmc_project::Common::Error; 20*e94c9ffcSWilliam A. Kennington III 21*e94c9ffcSWilliam A. Kennington III Configuration::Configuration(sdbusplus::bus_t& bus, const std::string& objPath, 22*e94c9ffcSWilliam A. Kennington III Manager& parent) : 23*e94c9ffcSWilliam A. Kennington III Iface(bus, objPath.c_str(), Iface::action::defer_emit), 24*e94c9ffcSWilliam A. Kennington III bus(bus), manager(parent) 25*e94c9ffcSWilliam A. Kennington III { 26*e94c9ffcSWilliam A. Kennington III config::Parser conf; 27*e94c9ffcSWilliam A. Kennington III { 28*e94c9ffcSWilliam A. Kennington III auto interfaceStrList = getInterfaces(); 29*e94c9ffcSWilliam A. Kennington III if (!interfaceStrList.empty()) 30*e94c9ffcSWilliam A. Kennington III { 31*e94c9ffcSWilliam A. Kennington III conf.setFile(config::pathForIntfConf(manager.getConfDir(), 32*e94c9ffcSWilliam A. Kennington III *interfaceStrList.begin())); 33*e94c9ffcSWilliam A. Kennington III } 34*e94c9ffcSWilliam A. Kennington III } 35*e94c9ffcSWilliam A. Kennington III 36*e94c9ffcSWilliam A. Kennington III ConfigIntf::dnsEnabled(getDHCPProp(conf, "UseDNS")); 37*e94c9ffcSWilliam A. Kennington III ConfigIntf::ntpEnabled(getDHCPProp(conf, "UseNTP")); 38*e94c9ffcSWilliam A. Kennington III ConfigIntf::hostNameEnabled(getDHCPProp(conf, "UseHostname")); 39*e94c9ffcSWilliam A. Kennington III ConfigIntf::sendHostNameEnabled(getDHCPProp(conf, "SendHostname")); 40*e94c9ffcSWilliam A. Kennington III emit_object_added(); 41*e94c9ffcSWilliam A. Kennington III } 42*e94c9ffcSWilliam A. Kennington III 431bbe3d1eSWilliam A. Kennington III bool Configuration::sendHostNameEnabled(bool value) 441bbe3d1eSWilliam A. Kennington III { 451bbe3d1eSWilliam A. Kennington III if (value == sendHostNameEnabled()) 461bbe3d1eSWilliam A. Kennington III { 471bbe3d1eSWilliam A. Kennington III return value; 481bbe3d1eSWilliam A. Kennington III } 491bbe3d1eSWilliam A. Kennington III 501bbe3d1eSWilliam A. Kennington III auto name = ConfigIntf::sendHostNameEnabled(value); 51bd649af9SWilliam A. Kennington III 521bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 53bd649af9SWilliam A. Kennington III manager.reloadConfigs(); 541bbe3d1eSWilliam A. Kennington III 551bbe3d1eSWilliam A. Kennington III return name; 561bbe3d1eSWilliam A. Kennington III } 571bbe3d1eSWilliam A. Kennington III 581bbe3d1eSWilliam A. Kennington III bool Configuration::hostNameEnabled(bool value) 591bbe3d1eSWilliam A. Kennington III { 601bbe3d1eSWilliam A. Kennington III if (value == hostNameEnabled()) 611bbe3d1eSWilliam A. Kennington III { 621bbe3d1eSWilliam A. Kennington III return value; 631bbe3d1eSWilliam A. Kennington III } 641bbe3d1eSWilliam A. Kennington III 651bbe3d1eSWilliam A. Kennington III auto name = ConfigIntf::hostNameEnabled(value); 661bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 67bd649af9SWilliam A. Kennington III manager.reloadConfigs(); 681bbe3d1eSWilliam A. Kennington III 691bbe3d1eSWilliam A. Kennington III return name; 701bbe3d1eSWilliam A. Kennington III } 711bbe3d1eSWilliam A. Kennington III 721bbe3d1eSWilliam A. Kennington III bool Configuration::ntpEnabled(bool value) 731bbe3d1eSWilliam A. Kennington III { 741bbe3d1eSWilliam A. Kennington III if (value == ntpEnabled()) 751bbe3d1eSWilliam A. Kennington III { 761bbe3d1eSWilliam A. Kennington III return value; 771bbe3d1eSWilliam A. Kennington III } 781bbe3d1eSWilliam A. Kennington III 791bbe3d1eSWilliam A. Kennington III auto ntp = ConfigIntf::ntpEnabled(value); 801bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 81bd649af9SWilliam A. Kennington III manager.reloadConfigs(); 821bbe3d1eSWilliam A. Kennington III 831bbe3d1eSWilliam A. Kennington III return ntp; 841bbe3d1eSWilliam A. Kennington III } 851bbe3d1eSWilliam A. Kennington III 861bbe3d1eSWilliam A. Kennington III bool Configuration::dnsEnabled(bool value) 871bbe3d1eSWilliam A. Kennington III { 881bbe3d1eSWilliam A. Kennington III if (value == dnsEnabled()) 891bbe3d1eSWilliam A. Kennington III { 901bbe3d1eSWilliam A. Kennington III return value; 911bbe3d1eSWilliam A. Kennington III } 921bbe3d1eSWilliam A. Kennington III 931bbe3d1eSWilliam A. Kennington III auto dns = ConfigIntf::dnsEnabled(value); 941bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 95bd649af9SWilliam A. Kennington III manager.reloadConfigs(); 961bbe3d1eSWilliam A. Kennington III 971bbe3d1eSWilliam A. Kennington III return dns; 981bbe3d1eSWilliam A. Kennington III } 991bbe3d1eSWilliam A. Kennington III 1001bbe3d1eSWilliam A. Kennington III } // namespace dhcp 1011bbe3d1eSWilliam A. Kennington III } // namespace network 1021bbe3d1eSWilliam A. Kennington III } // namespace phosphor 103