Merge into master from pull request #309:
java: discard the IPv6 zone id when parsing addresses (https://github.com/floodlight/loxigen/pull/309)
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
index a787ca9..9d6fa4d 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
@@ -225,8 +225,17 @@
public static IPv6Address of(@Nonnull final String string) throws IllegalArgumentException {
Preconditions.checkNotNull(string, "string must not be null");
+ // remove the zone id
+ int zoneDelimIndex = string.indexOf("%");
+ String substring;
+ if (zoneDelimIndex != -1) {
+ substring = string.substring(0, zoneDelimIndex);
+ } else {
+ substring = string;
+ }
+
IPv6Builder builder = new IPv6Builder();
- String[] parts = colonPattern.split(string, -1);
+ String[] parts = colonPattern.split(substring, -1);
int leftWord = 0;
int leftIndex = 0;
diff --git a/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPv6AddressTest.java b/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPv6AddressTest.java
index a397c2a..fd26856 100644
--- a/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPv6AddressTest.java
+++ b/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPv6AddressTest.java
@@ -399,4 +399,10 @@
assertNotNull(e.getMessage());
}
}
+
+ @Test
+ public void testZoneId() throws OFParseError {
+ assertEquals("::", IPv6Address.of("::%eth0").toString(true, false));
+ assertEquals("1:0:0:4::8", IPv6Address.of("1:0:0:4:0:0:0:8%2").toString(true, false));
+ }
}