diff options
author | Ratan Gupta <ratagupt@in.ibm.com> | 2017-06-15 09:27:27 +0530 |
---|---|---|
committer | Ratan Gupta <ratagupt@in.ibm.com> | 2017-06-29 22:48:09 +0530 |
commit | 87c139834ecebf78b403c0db20b36598c2c1db64 (patch) | |
tree | dc783776b1cde406c9affa806f7c0d6bc601122d /ethernet_interface.cpp | |
parent | 3681a503d79f9db5e81fa440af054817e728a4b4 (diff) | |
download | phosphor-networkd-87c139834ecebf78b403c0db20b36598c2c1db64.tar.gz phosphor-networkd-87c139834ecebf78b403c0db20b36598c2c1db64.zip |
Refresh the interface objects if DHCP mode changes
Create the ipaddress objects for the ethernet interface
whose DHCP is enabled.
Resolves openbmc/openbmc#1295
Change-Id: Id5ad35f1d51f2bf80c4e2b573e7bd38489370411
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
Diffstat (limited to 'ethernet_interface.cpp')
-rw-r--r-- | ethernet_interface.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/ethernet_interface.cpp b/ethernet_interface.cpp index 1f36815..f29c482 100644 --- a/ethernet_interface.cpp +++ b/ethernet_interface.cpp @@ -43,14 +43,17 @@ EthernetInterface::EthernetInterface(sdbusplus::bus::bus& bus, interfaceName(intfName); dHCPEnabled(dhcpEnabled); mACAddress(getMACAddress()); + createIPAddressObjects(); // Emit deferred signal. this->emit_object_added(); } -void EthernetInterface::setAddressList(const AddrList& addrs) +void EthernetInterface::createIPAddressObjects() { std::string gateway; + addrs.clear(); + auto addrs = getInterfaceAddrs()[interfaceName()]; IP::Protocol addressType = IP::Protocol::IPv4; IP::AddressOrigin origin = IP::AddressOrigin::Static; route::Table routingTable; @@ -276,5 +279,16 @@ std::string EthernetInterface::generateObjectPath(IP::Protocol addressType, return objectPath.string(); } +bool EthernetInterface::dHCPEnabled(bool value) +{ + EthernetInterfaceIntf::dHCPEnabled(value); + if (value == true) + { + manager.writeToConfigurationFile(); + createIPAddressObjects(); + } + return value; +} + }//namespace network }//namespace phosphor |