DHCP value was not getting updated correctly

This commit fixes
=>Disable zeroconf.
=>Correct the network conf file path in factory reset.
=>Updating the DHCP value correctly.

Resolves openbmc/openbmc#2230
Resolves openbmc/openbmc#2215

Change-Id: I8f87c2afb53cc952755165d34bfb62b8aba80fe5
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/ethernet_interface.cpp b/ethernet_interface.cpp
index ac138f3..c24a3e8 100644
--- a/ethernet_interface.cpp
+++ b/ethernet_interface.cpp
@@ -327,11 +327,8 @@
     }
 
     EthernetInterfaceIntf::dHCPEnabled(value);
-    if (value)
-    {
-        writeConfigurationFile();
-        createIPAddressObjects();
-    }
+    writeConfigurationFile();
+    createIPAddressObjects();
 
     return value;
 }
@@ -426,7 +423,14 @@
 
     // write the network section
     stream << "[" << "Network" << "]\n";
-    stream << "LinkLocalAddressing=yes\n";
+
+    // Add the VLAN entry
+    for (const auto& intf: vlanInterfaces)
+    {
+        stream << "VLAN=" << intf.second->EthernetInterface::interfaceName()
+            << "\n";
+    }
+
     // DHCP
     if (dHCPEnabled() == true)
     {
@@ -434,13 +438,9 @@
         // configured as dhcp.
         writeDHCPSection(stream);
         stream.close();
+        restartSystemdUnit("systemd-networkd.service");
         return;
     }
-    // Add the Vlan entry
-    for(const auto& intf: vlanInterfaces)
-    {
-        stream << "VLAN=" << intf.second->EthernetInterface::interfaceName() << "\n";
-    }
 
     // Static
     for (const auto& addr : addrs)