From dc84d90be260d0a000fd4575e65e93c98b9279be Mon Sep 17 00:00:00 2001 From: abhishek9686 Date: Thu, 12 Sep 2024 12:13:37 +0400 Subject: [PATCH] ipv6 fix for mobile apps --- pro/controllers/users.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pro/controllers/users.go b/pro/controllers/users.go index c3bd9df4..3ad82a83 100644 --- a/pro/controllers/users.go +++ b/pro/controllers/users.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "net" "net/http" "net/url" "strings" @@ -878,6 +879,9 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) { } gws := userGws[node.Network] + if net.ParseIP(extClient.IngressGatewayEndpoint).To16() != nil { + extClient.IngressGatewayEndpoint = fmt.Sprintf("[%s]", extClient.IngressGatewayEndpoint) + } extClient.AllowedIPs = logic.GetExtclientAllowedIPs(extClient) gws = append(gws, models.UserRemoteGws{ GwID: node.ID.String(), @@ -991,11 +995,15 @@ func getAllowedRagEndpoints(ragNode *models.Node, ragHost *models.Host) []string endpoints = append(endpoints, ragHost.EndpointIP.String()) } if len(ragHost.EndpointIPv6) > 0 { - endpoints = append(endpoints, ragHost.EndpointIPv6.String()) + endpoints = append(endpoints, fmt.Sprintf("[%s]", ragHost.EndpointIPv6.String())) } if servercfg.IsPro { for _, ip := range ragNode.AdditionalRagIps { - endpoints = append(endpoints, ip.String()) + if ip.To16() != nil { + endpoints = append(endpoints, fmt.Sprintf("[%s]", ip.String())) + } else { + endpoints = append(endpoints, ip.String()) + } } } return endpoints