This is an automated email from the ASF dual-hosted git repository.

jermy pushed a commit to branch cassandra--metrics-ip6-fix-translate-ipv4
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git

commit bee30df6c584aec5e2715ee8ffc1f3364b3ef7d3
Author: Zhangmei Li <[email protected]>
AuthorDate: Sun Apr 24 16:05:00 2022 +0800

    Translate IPv4 to IPv6 to fix issue #1843
    
    Change-Id: I1e04122d9e0cd7cd5986e9b33b0fad74d22c1937
---
 .../backend/store/cassandra/CassandraMetrics.java        | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java
 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java
index 664b4f245..a5ef54916 100644
--- 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java
+++ 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java
@@ -21,6 +21,9 @@ package com.baidu.hugegraph.backend.store.cassandra;
 
 import java.io.IOException;
 import java.lang.management.MemoryUsage;
+import java.net.Inet4Address;
+import java.net.Inet6Address;
+import java.net.InetAddress;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -295,8 +298,17 @@ public class CassandraMetrics implements BackendMetrics {
 
         Map<String, Object> hostsResults = InsertionOrderUtil.newMap();
         for (Host host : hosts) {
-            String address = host.getAddress().getHostAddress();
-            hostsResults.put(address, func.apply(address));
+            InetAddress address = host.getAddress();
+            String hostAddress;
+            if (address instanceof Inet4Address) {
+                hostAddress = host.getAddress().getHostAddress();
+                // Translate IPv4 to IPv6 to fix issue #1843
+                hostAddress = "::FFFF:" + hostAddress;
+            } else {
+                assert address instanceof Inet6Address;
+                hostAddress = host.getAddress().getHostAddress();
+            }
+            hostsResults.put(hostAddress, func.apply(hostAddress));
         }
         results.put(SERVERS, hostsResults);
 

Reply via email to