ONOS-2888 Bug fix to avaoid DHCP Server assigning two hosts the same IP
Change-Id: I75dd4bdca43b9b3a0194d9742d84e088eeddac4e
diff --git a/apps/dhcp/src/main/java/org/onosproject/dhcp/impl/DhcpManager.java b/apps/dhcp/src/main/java/org/onosproject/dhcp/impl/DhcpManager.java
index e3a4f43..345d5ad 100644
--- a/apps/dhcp/src/main/java/org/onosproject/dhcp/impl/DhcpManager.java
+++ b/apps/dhcp/src/main/java/org/onosproject/dhcp/impl/DhcpManager.java
@@ -221,7 +221,7 @@
@Override
public Map<HostId, IpAssignment> listMapping() {
- return dhcpStore.listMapping();
+ return dhcpStore.listAssignedMapping();
}
@Override
@@ -658,7 +658,7 @@
IpAssignment ipAssignment;
Date dateNow = new Date();
- Map<HostId, IpAssignment> ipAssignmentMap = dhcpStore.listMapping();
+ Map<HostId, IpAssignment> ipAssignmentMap = dhcpStore.listAllMapping();
for (Map.Entry<HostId, IpAssignment> entry: ipAssignmentMap.entrySet()) {
ipAssignment = entry.getValue();
@@ -667,6 +667,7 @@
(ipAssignment.leasePeriod() > 0) && (timeLapsed > (ipAssignment.leasePeriodMs()))) {
dhcpStore.releaseIP(entry.getKey());
+ // TODO remove only the IP from the host entry when the API is in place.
hostProviderService.hostVanished(entry.getKey());
}
}