From c4daee3a8b01d7b03544906aab8b2aa292b110d7 Mon Sep 17 00:00:00 2001
From: Pea Nut <peanut2@systemli.org>
Date: Mon, 1 Jul 2024 11:48:48 +0200
Subject: [PATCH] Don't return gateway twice if location is selected manually,
 fixes #823

This fixes a small logic error. Each gateway can be multiple times in
p.recommened (for each transport). If a location was selected manually,
each gateway was added twice to the returned list. The returned list is
the list of gateways we will connect to. For more information, please
check the merge request description.
---
 pkg/vpn/bonafide/gateways.go | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkg/vpn/bonafide/gateways.go b/pkg/vpn/bonafide/gateways.go
index 88c7581e..bbf5e084 100644
--- a/pkg/vpn/bonafide/gateways.go
+++ b/pkg/vpn/bonafide/gateways.go
@@ -173,10 +173,10 @@ func (p *gatewayPool) getGatewaysFromMenshenByLocation(location, transport strin
 
 	var gateways []Gateway
 	for _, gw := range p.recommended {
+		if !gw.gateway.isTransport(transport) {
+			continue
+		}
 		for _, locatedGw := range gws {
-			if !locatedGw.isTransport(transport) {
-				continue
-			}
 			if locatedGw.Host == gw.gateway.Host {
 				gateways = append(gateways, *locatedGw)
 				break
-- 
GitLab