diff --git a/.circleci/config.yml b/.circleci/config.yml index 081290d1..70fd3b39 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,6 +15,7 @@ executors: - image: <> - image: influxdb:3-core environment: + - JAVA_OPTS="-Djava.net.preferIPv4Stack=true --Djava.net.preferIPv6Addresses=true" - INFLUXDB3_NODE_IDENTIFIER_PREFIX=node01 - INFLUXDB3_OBJECT_STORE=file - INFLUXDB3_DB_DIR=/var/lib/influxdb3/data @@ -27,6 +28,7 @@ executors: - image: <> - image: influxdb:3-core environment: + - JAVA_OPTS="-Djava.net.preferIPv4Stack=true --Djava.net.preferIPv6Addresses=true" - INFLUXDB3_NODE_IDENTIFIER_PREFIX=node01 - INFLUXDB3_OBJECT_STORE=file - INFLUXDB3_DB_DIR=/var/lib/influxdb3/data diff --git a/src/test/java/com/influxdb/v3/client/InfluxDBClientWriteTest.java b/src/test/java/com/influxdb/v3/client/InfluxDBClientWriteTest.java index f4df4250..adb0929d 100644 --- a/src/test/java/com/influxdb/v3/client/InfluxDBClientWriteTest.java +++ b/src/test/java/com/influxdb/v3/client/InfluxDBClientWriteTest.java @@ -21,6 +21,7 @@ */ package com.influxdb.v3.client; +import java.net.InetAddress; import java.time.Duration; import java.time.Instant; import java.util.Arrays; @@ -33,6 +34,7 @@ import javax.annotation.Nullable; import io.netty.handler.codec.http.HttpResponseStatus; +import mockwebserver3.MockWebServer; import mockwebserver3.RecordedRequest; import okhttp3.HttpUrl; import org.assertj.core.api.Assertions; @@ -570,6 +572,24 @@ void allParameterSpecified() throws InterruptedException { assertThat(request.getUrl().queryParameter("bucket")).isEqualTo("your-database"); } + @Test + void writeWithIpv6Host() throws Exception { + try (MockWebServer mockWebServer = new MockWebServer()) { + mockWebServer.start(InetAddress.getByName("::"), 0); + mockWebServer.enqueue(createResponse(200)); + String targetUrl = String.format("http://[%s]:%d/", mockWebServer.getHostName(), mockWebServer.getPort()); + + var influxdbClient = InfluxDBClient.getInstance(targetUrl, "my-token".toCharArray(), "my-database"); + influxdbClient.writePoint( + Point.measurement("mem") + .setTag("tag", "one") + .setField("value", 1.0) + ); + influxdbClient.close(); + assertThat(mockWebServer.takeRequest().getBody().utf8()).isEqualTo("mem,tag=one value=1.0"); + } + } + @Test void contentHeaders() throws InterruptedException { mockServer.enqueue(createResponse(200));