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" 595530ec9SWilliam A. Kennington III #include "util.hpp" 61bbe3d1eSWilliam A. Kennington III 71bbe3d1eSWilliam A. Kennington III #include <phosphor-logging/elog-errors.hpp> 81bbe3d1eSWilliam A. Kennington III #include <phosphor-logging/log.hpp> 91bbe3d1eSWilliam A. Kennington III #include <xyz/openbmc_project/Common/error.hpp> 101bbe3d1eSWilliam A. Kennington III 111bbe3d1eSWilliam A. Kennington III namespace phosphor 121bbe3d1eSWilliam A. Kennington III { 131bbe3d1eSWilliam A. Kennington III namespace network 141bbe3d1eSWilliam A. Kennington III { 151bbe3d1eSWilliam A. Kennington III namespace dhcp 161bbe3d1eSWilliam A. Kennington III { 171bbe3d1eSWilliam A. Kennington III 181bbe3d1eSWilliam A. Kennington III using namespace phosphor::network; 191bbe3d1eSWilliam A. Kennington III using namespace phosphor::logging; 201bbe3d1eSWilliam A. Kennington III using namespace sdbusplus::xyz::openbmc_project::Common::Error; 21e94c9ffcSWilliam A. Kennington III 22*be3bd2fcSWilliam A. Kennington III Configuration::Configuration(sdbusplus::bus_t& bus, 23*be3bd2fcSWilliam A. Kennington III stdplus::const_zstring objPath, Manager& parent) : 24e94c9ffcSWilliam A. Kennington III Iface(bus, objPath.c_str(), Iface::action::defer_emit), 25e94c9ffcSWilliam A. Kennington III bus(bus), manager(parent) 26e94c9ffcSWilliam A. Kennington III { 27e94c9ffcSWilliam A. Kennington III config::Parser conf; 28e94c9ffcSWilliam A. Kennington III { 2996444795SWilliam A. Kennington III auto interfaceStrList = getSystemInterfaces(); 30e94c9ffcSWilliam A. Kennington III if (!interfaceStrList.empty()) 31e94c9ffcSWilliam A. Kennington III { 32e94c9ffcSWilliam A. Kennington III conf.setFile(config::pathForIntfConf(manager.getConfDir(), 33e94c9ffcSWilliam A. Kennington III *interfaceStrList.begin())); 34e94c9ffcSWilliam A. Kennington III } 35e94c9ffcSWilliam A. Kennington III } 36e94c9ffcSWilliam A. Kennington III 37e94c9ffcSWilliam A. Kennington III ConfigIntf::dnsEnabled(getDHCPProp(conf, "UseDNS")); 38e94c9ffcSWilliam A. Kennington III ConfigIntf::ntpEnabled(getDHCPProp(conf, "UseNTP")); 39e94c9ffcSWilliam A. Kennington III ConfigIntf::hostNameEnabled(getDHCPProp(conf, "UseHostname")); 40e94c9ffcSWilliam A. Kennington III ConfigIntf::sendHostNameEnabled(getDHCPProp(conf, "SendHostname")); 41e94c9ffcSWilliam A. Kennington III emit_object_added(); 42e94c9ffcSWilliam A. Kennington III } 43e94c9ffcSWilliam A. Kennington III 441bbe3d1eSWilliam A. Kennington III bool Configuration::sendHostNameEnabled(bool value) 451bbe3d1eSWilliam A. Kennington III { 461bbe3d1eSWilliam A. Kennington III if (value == sendHostNameEnabled()) 471bbe3d1eSWilliam A. Kennington III { 481bbe3d1eSWilliam A. Kennington III return value; 491bbe3d1eSWilliam A. Kennington III } 501bbe3d1eSWilliam A. Kennington III 511bbe3d1eSWilliam A. Kennington III auto name = ConfigIntf::sendHostNameEnabled(value); 52bd649af9SWilliam A. Kennington III 531bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 54bd649af9SWilliam A. Kennington III manager.reloadConfigs(); 551bbe3d1eSWilliam A. Kennington III 561bbe3d1eSWilliam A. Kennington III return name; 571bbe3d1eSWilliam A. Kennington III } 581bbe3d1eSWilliam A. Kennington III 591bbe3d1eSWilliam A. Kennington III bool Configuration::hostNameEnabled(bool value) 601bbe3d1eSWilliam A. Kennington III { 611bbe3d1eSWilliam A. Kennington III if (value == hostNameEnabled()) 621bbe3d1eSWilliam A. Kennington III { 631bbe3d1eSWilliam A. Kennington III return value; 641bbe3d1eSWilliam A. Kennington III } 651bbe3d1eSWilliam A. Kennington III 661bbe3d1eSWilliam A. Kennington III auto name = ConfigIntf::hostNameEnabled(value); 671bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 68bd649af9SWilliam A. Kennington III manager.reloadConfigs(); 691bbe3d1eSWilliam A. Kennington III 701bbe3d1eSWilliam A. Kennington III return name; 711bbe3d1eSWilliam A. Kennington III } 721bbe3d1eSWilliam A. Kennington III 731bbe3d1eSWilliam A. Kennington III bool Configuration::ntpEnabled(bool value) 741bbe3d1eSWilliam A. Kennington III { 751bbe3d1eSWilliam A. Kennington III if (value == ntpEnabled()) 761bbe3d1eSWilliam A. Kennington III { 771bbe3d1eSWilliam A. Kennington III return value; 781bbe3d1eSWilliam A. Kennington III } 791bbe3d1eSWilliam A. Kennington III 801bbe3d1eSWilliam A. Kennington III auto ntp = ConfigIntf::ntpEnabled(value); 811bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 82bd649af9SWilliam A. Kennington III manager.reloadConfigs(); 831bbe3d1eSWilliam A. Kennington III 841bbe3d1eSWilliam A. Kennington III return ntp; 851bbe3d1eSWilliam A. Kennington III } 861bbe3d1eSWilliam A. Kennington III 871bbe3d1eSWilliam A. Kennington III bool Configuration::dnsEnabled(bool value) 881bbe3d1eSWilliam A. Kennington III { 891bbe3d1eSWilliam A. Kennington III if (value == dnsEnabled()) 901bbe3d1eSWilliam A. Kennington III { 911bbe3d1eSWilliam A. Kennington III return value; 921bbe3d1eSWilliam A. Kennington III } 931bbe3d1eSWilliam A. Kennington III 941bbe3d1eSWilliam A. Kennington III auto dns = ConfigIntf::dnsEnabled(value); 951bbe3d1eSWilliam A. Kennington III manager.writeToConfigurationFile(); 96bd649af9SWilliam A. Kennington III manager.reloadConfigs(); 971bbe3d1eSWilliam A. Kennington III 981bbe3d1eSWilliam A. Kennington III return dns; 991bbe3d1eSWilliam A. Kennington III } 1001bbe3d1eSWilliam A. Kennington III 1011bbe3d1eSWilliam A. Kennington III } // namespace dhcp 1021bbe3d1eSWilliam A. Kennington III } // namespace network 1031bbe3d1eSWilliam A. Kennington III } // namespace phosphor 104