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

sureshanaparti pushed a commit to branch 4.19
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.19 by this push:
     new 65753755379 extract host from websocket to add route (#8922)
65753755379 is described below

commit 6575375537942236088d44eb3ed3473e7437aad8
Author: dahn <d...@onecht.net>
AuthorDate: Fri Jun 28 15:32:19 2024 +0200

    extract host from websocket to add route (#8922)
    
    * extract host from websocket to add route
    
    * move method to NetUtils
    
    * imports
    
    * import
---
 .../main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java    | 2 ++
 utils/src/main/java/com/cloud/utils/net/NetUtils.java                | 5 +++++
 2 files changed, 7 insertions(+)

diff --git 
a/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java
 
b/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java
index cfa62114c3d..05063e0f861 100644
--- 
a/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java
+++ 
b/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java
@@ -16,6 +16,7 @@
 // under the License.
 package com.cloud.consoleproxy;
 
+import com.cloud.utils.net.NetUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.eclipse.jetty.websocket.api.Session;
@@ -284,6 +285,7 @@ public class ConsoleProxyNoVncClient implements 
ConsoleProxyClient {
         try {
             if (StringUtils.isNotBlank(websocketUrl)) {
                 s_logger.info(String.format("Connect to VNC over websocket 
URL: %s", websocketUrl));
+                ConsoleProxy.ensureRoute(NetUtils.extractHost(websocketUrl));
                 client.connectToWebSocket(websocketUrl, session);
             } else if (tunnelUrl != null && !tunnelUrl.isEmpty() && 
tunnelSession != null
                     && !tunnelSession.isEmpty()) {
diff --git a/utils/src/main/java/com/cloud/utils/net/NetUtils.java 
b/utils/src/main/java/com/cloud/utils/net/NetUtils.java
index 018912a2140..91a2f4eb755 100644
--- a/utils/src/main/java/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/main/java/com/cloud/utils/net/NetUtils.java
@@ -30,6 +30,7 @@ import java.net.InterfaceAddress;
 import java.net.NetworkInterface;
 import java.net.SocketException;
 import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -98,6 +99,10 @@ public class NetUtils {
     public final static int IPV6_EUI64_11TH_BYTE = -1;
     public final static int IPV6_EUI64_12TH_BYTE = -2;
 
+    public static String extractHost(String uri) throws URISyntaxException {
+        return (new URI(uri)).getHost();
+    }
+
     public enum InternetProtocol {
         IPv4, IPv6, DualStack;
 

Reply via email to