Introducing method byteBufForAddress. 98/13798/4
authorDana Kutenicsova <dkutenic@cisco.com>
Sat, 22 Nov 2014 15:51:43 +0000 (16:51 +0100)
committerDana Kutenicsova <dkutenic@cisco.com>
Tue, 23 Dec 2014 16:38:01 +0000 (17:38 +0100)
Change-Id: I7494a20ea464a35553895076402298a63631abb7
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
util/src/main/java/org/opendaylight/protocol/util/Ipv4Util.java
util/src/main/java/org/opendaylight/protocol/util/Ipv6Util.java
util/src/test/java/org/opendaylight/protocol/util/IPAddressesAndPrefixesTest.java

index 1bbbc00e3fd2d3e31d22b8eaa30ca791a12e6aa8..3c64f474e6bede86df58e97567a51157d85b96a7 100644 (file)
@@ -13,6 +13,7 @@ import com.google.common.net.InetAddresses;
 import com.google.common.primitives.Bytes;
 import com.google.common.primitives.UnsignedBytes;
 import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
 import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -58,6 +59,15 @@ public final class Ipv4Util {
         return new Ipv4Address(InetAddresses.toAddrString(getAddress(ByteArray.readBytes(buffer, IP4_LENGTH))));
     }
 
+    /**
+     * From string ipAddress creates an InetAddress and puts it into ByteBuf.
+     * @param ipAddress Ipv4 address
+     * @return ByteBuf with filled in bytes from ipAddress
+     */
+    public static ByteBuf byteBufForAddress(final Ipv4Address ipAddress) {
+        return Unpooled.wrappedBuffer(bytesForAddress(ipAddress));
+    }
+
     /**
      * Converts Ipv4Address to byte array.
      *
index a0267206bb9da5d5b721bdeb0cef5df15ca349cf..8a0ee29a4dc9458185165201c826306cc6e94f07 100644 (file)
@@ -13,6 +13,7 @@ import com.google.common.net.InetAddresses;
 import com.google.common.primitives.Bytes;
 import com.google.common.primitives.UnsignedBytes;
 import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -58,6 +59,15 @@ public final class Ipv6Util {
         return new Ipv6Address(InetAddresses.toAddrString(getAddress((ByteArray.readBytes(buffer, IPV6_LENGTH)))));
     }
 
+    /**
+     * From string ipAddress creates an InetAddress and puts it into ByteBuf.
+     * @param ipAddress Ipv6 address
+     * @return ByteBuf with filled in bytes from ipAddress
+     */
+    public static ByteBuf byteBufForAddress(final Ipv6Address ipAddress) {
+        return Unpooled.wrappedBuffer(bytesForAddress(ipAddress));
+    }
+
     /**
      * Converts Ipv6Address to byte array.
      *
index b95678e1484f0f4f52f70d7fa116a831f181402f..22412240a42451697a0fb75be60805166a665073 100644 (file)
@@ -86,6 +86,14 @@ public class IPAddressesAndPrefixesTest {
         assertEquals(new Ipv6Address("2001::1"), Ipv6Util.addressForByteBuf(bb));
     }
 
+    @Test
+    public void testByteBufForAddress() {
+        final ByteBuf bb4 = Unpooled.wrappedBuffer(new byte[] { 123, 122, 4, 5} );
+        final ByteBuf bb6 = Unpooled.wrappedBuffer(new byte[] { 0x20, (byte) 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } );
+        assertEquals(bb4, Ipv4Util.byteBufForAddress(new Ipv4Address("123.122.4.5")));
+        assertEquals(bb6, Ipv6Util.byteBufForAddress(new Ipv6Address("2001::1")));
+    }
+
     @Test
     public void testBytesForAddress() {
         assertArrayEquals(new byte[] { 12, 58, (byte) 201, 99 }, Ipv4Util.bytesForAddress(new Ipv4Address("12.58.201.99")));