summaryrefslogtreecommitdiffstats
path: root/ethernet_interface.cpp
diff options
context:
space:
mode:
authorRatan Gupta <ratagupt@in.ibm.com>2017-06-15 09:27:27 +0530
committerRatan Gupta <ratagupt@in.ibm.com>2017-06-29 22:48:09 +0530
commit87c139834ecebf78b403c0db20b36598c2c1db64 (patch)
treedc783776b1cde406c9affa806f7c0d6bc601122d /ethernet_interface.cpp
parent3681a503d79f9db5e81fa440af054817e728a4b4 (diff)
downloadphosphor-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.cpp16
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
OpenPOWER on IntegriCloud