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

HTHou pushed a commit to branch codex/fix-cli-ipv6-endpoint-format
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit f2e6540b0ea6776bbe4d57933dd02fdf7c43135a
Author: HTHou <[email protected]>
AuthorDate: Thu Jul 23 17:04:08 2026 +0800

    Fix CLI IPv6 endpoint formatting
---
 .../en/org/apache/iotdb/cli/i18n/CliMessages.java     |  3 +++
 .../zh/org/apache/iotdb/cli/i18n/CliMessages.java     |  3 +++
 .../cli/src/main/java/org/apache/iotdb/cli/Cli.java   | 19 ++++++++++++++-----
 3 files changed, 20 insertions(+), 5 deletions(-)

diff --git 
a/iotdb-client/cli/src/main/i18n/en/org/apache/iotdb/cli/i18n/CliMessages.java 
b/iotdb-client/cli/src/main/i18n/en/org/apache/iotdb/cli/i18n/CliMessages.java
index 9a877ca9d3c..5c13eb55752 100644
--- 
a/iotdb-client/cli/src/main/i18n/en/org/apache/iotdb/cli/i18n/CliMessages.java
+++ 
b/iotdb-client/cli/src/main/i18n/en/org/apache/iotdb/cli/i18n/CliMessages.java
@@ -24,6 +24,9 @@ public final class CliMessages {
   // CliContext
   public static final String EXITING_WITH_CODE = "Exiting with code %d";
 
+  // Cli
+  public static final String SUCCESSFULLY_LOGIN_AT = "Successfully login at 
%s";
+
   // IoTDBDataBackTool
   public static final String TARGET_DIR_EMPTY =
       " -targetdir cannot be empty, The backup folder must be specified";
diff --git 
a/iotdb-client/cli/src/main/i18n/zh/org/apache/iotdb/cli/i18n/CliMessages.java 
b/iotdb-client/cli/src/main/i18n/zh/org/apache/iotdb/cli/i18n/CliMessages.java
index 68e5c47e999..0e0f8f45634 100644
--- 
a/iotdb-client/cli/src/main/i18n/zh/org/apache/iotdb/cli/i18n/CliMessages.java
+++ 
b/iotdb-client/cli/src/main/i18n/zh/org/apache/iotdb/cli/i18n/CliMessages.java
@@ -24,6 +24,9 @@ public final class CliMessages {
   // CliContext
   public static final String EXITING_WITH_CODE = "正在退出,退出码 %d";
 
+  // Cli
+  public static final String SUCCESSFULLY_LOGIN_AT = "成功登录到 %s";
+
   // IoTDBDataBackTool
   public static final String TARGET_DIR_EMPTY =
       " -targetdir 不能为空,必须指定备份目录";
diff --git a/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/Cli.java 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/Cli.java
index 63c3c5d1153..5a20e61d761 100644
--- a/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/Cli.java
+++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/Cli.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.cli;
 
+import org.apache.iotdb.cli.i18n.CliMessages;
 import org.apache.iotdb.cli.type.ExitType;
 import org.apache.iotdb.cli.utils.CliContext;
 import org.apache.iotdb.cli.utils.JlineUtils;
@@ -26,6 +27,7 @@ import org.apache.iotdb.exception.ArgsErrorException;
 import org.apache.iotdb.jdbc.Config;
 import org.apache.iotdb.jdbc.IoTDBConnection;
 import org.apache.iotdb.rpc.RpcUtils;
+import org.apache.iotdb.rpc.UrlUtils;
 
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
@@ -204,8 +206,7 @@ public class Cli extends AbstractCli {
 
   private static void executeSql(CliContext ctx) throws TException {
     try (IoTDBConnection connection =
-        (IoTDBConnection)
-            DriverManager.getConnection(Config.IOTDB_URL_PREFIX + host + ":" + 
port + "/", info)) {
+        (IoTDBConnection) DriverManager.getConnection(buildJdbcUrl(host, 
port), info)) {
       connection.setQueryTimeout(queryTimeout);
       properties = connection.getServerProperties();
       timestampPrecision = properties.getTimestampPrecision();
@@ -220,15 +221,15 @@ public class Cli extends AbstractCli {
 
   private static void receiveCommands(CliContext ctx) throws TException {
     try (IoTDBConnection connection =
-        (IoTDBConnection)
-            DriverManager.getConnection(Config.IOTDB_URL_PREFIX + host + ":" + 
port + "/", info)) {
+        (IoTDBConnection) DriverManager.getConnection(buildJdbcUrl(host, 
port), info)) {
       connection.setQueryTimeout(queryTimeout);
       properties = connection.getServerProperties();
       timestampPrecision = properties.getTimestampPrecision();
 
       echoStarting(ctx);
       displayLogo(ctx, properties.getLogo(), properties.getVersion(), 
properties.getBuildInfo());
-      ctx.getPrinter().println(String.format("Successfully login at %s:%s", 
host, port));
+      ctx.getPrinter()
+          .println(String.format(CliMessages.SUCCESSFULLY_LOGIN_AT, 
formatEndpoint(host, port)));
       while (true) {
         boolean readLine = readerReadLine(ctx, connection);
         if (readLine) {
@@ -241,6 +242,14 @@ public class Cli extends AbstractCli {
     }
   }
 
+  private static String formatEndpoint(String host, String port) {
+    return UrlUtils.formatTEndPointIpv4AndIpv6Url(host, 
Integer.parseInt(port));
+  }
+
+  private static String buildJdbcUrl(String host, String port) {
+    return Config.IOTDB_URL_PREFIX + formatEndpoint(host, port) + "/";
+  }
+
   private static boolean readerReadLine(CliContext ctx, IoTDBConnection 
connection) {
     String s;
     try {

Reply via email to