Merge remote branch 'origin/release-1.0.X' into mer
[lispflowmapping.git] / mappingservice / implementation / src / main / java / org / opendaylight / lispflowmapping / implementation / util / LispNotificationHelper.java
index be8dac0ef9d9d8aa0f89f100d0939b8dccd96b14..5c773e48fff6e5896cd2c064bccceef4f79cc989 100644 (file)
@@ -11,6 +11,8 @@ import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 
+import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.lispaddress.LispAddressContainer;
+import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.lispaddress.lispaddresscontainer.address.Ipv4;
 import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.mapregisternotification.MapRegister;
 import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.mapregisternotification.MapRegisterBuilder;
 import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequestnotification.MapRequest;
@@ -46,21 +48,31 @@ public class LispNotificationHelper {
     }
 
     public static InetAddress getInetAddressFromIpAddress(IpAddress ipAddress) {
-        InetAddress address = InetAddress.getLoopbackAddress();
-        if (ipAddress == null) {
-            return address;
-        }
-        if (ipAddress.getIpv4Address() != null) {
-            try {
-                address = Inet4Address.getByName(ipAddress.getIpv4Address().getValue());
-            } catch (UnknownHostException e) {
-            }
-        } else if (ipAddress.getIpv6Address() != null) {
-            try {
-                address = Inet4Address.getByName(ipAddress.getIpv6Address().getValue());
-            } catch (UnknownHostException e) {
+        InetAddress address = null;
+        if (ipAddress != null) {
+            if (ipAddress.getIpv4Address() != null) {
+                address = getAddressByName(ipAddress.getIpv4Address().getValue());
+            } else if (ipAddress.getIpv6Address() != null) {
+                address = getAddressByName(ipAddress.getIpv6Address().getValue());
             }
         }
+        if (address == null) {
+            address = InetAddress.getLoopbackAddress();
+        }
         return address;
     }
+
+    public static InetAddress getInetAddressFromContainer(LispAddressContainer container) {
+        Ipv4Address ipAddress = ((Ipv4) LispAFIConvertor.toAFI(container)).getIpv4Address();
+        return getAddressByName(ipAddress.getValue());
+    }
+
+    public static InetAddress getAddressByName(String IPAddress) {
+        try {
+            InetAddress address = InetAddress.getByName(IPAddress);
+            return address;
+        } catch (UnknownHostException e) {
+            return null;
+        }
+    }
 }