From c2a582fa4915b1a820bcc5e5bc589cd9ac2e2d19 Mon Sep 17 00:00:00 2001
From: "kali kaneko (leap communications)" <kali@leap.se>
Date: Tue, 1 Jun 2021 11:44:11 +0200
Subject: [PATCH] [feat] restrict locations to selected transport

---
 gui/qml/main.qml             | 1 +
 pkg/backend/api.go           | 1 +
 pkg/vpn/bonafide/gateways.go | 3 +++
 3 files changed, 5 insertions(+)

diff --git a/gui/qml/main.qml b/gui/qml/main.qml
index daffda22..3d83b317 100644
--- a/gui/qml/main.qml
+++ b/gui/qml/main.qml
@@ -181,6 +181,7 @@ ApplicationWindow {
             ctx = JSON.parse(jsonModel.getJson())
             // TODO pass QML_DEBUG variable to be hyper-verbose
             //console.debug(jsonModel.getJson())
+
             gwSelector.model = Object.keys(ctx.locations)
 
             if (ctx.donateDialog == 'true') {
diff --git a/pkg/backend/api.go b/pkg/backend/api.go
index 53800b35..96f3072d 100644
--- a/pkg/backend/api.go
+++ b/pkg/backend/api.go
@@ -81,6 +81,7 @@ func UseAutomaticGateway() {
 
 func SetTransport(label string) {
 	ctx.bm.SetTransport(label)
+	go trigger(OnStatusChanged)
 }
 
 func GetTransport() *C.char {
diff --git a/pkg/vpn/bonafide/gateways.go b/pkg/vpn/bonafide/gateways.go
index a0d41fbb..53ab320a 100644
--- a/pkg/vpn/bonafide/gateways.go
+++ b/pkg/vpn/bonafide/gateways.go
@@ -97,6 +97,9 @@ func (p *gatewayPool) listLocationFullness(transport string) map[string]float64
 	}
 	if len(p.recommended) != 0 {
 		for _, gw := range p.recommended {
+			if gw.gateway.Transport != transport {
+				continue
+			}
 			if _, ok := cm[gw.gateway.Location]; ok {
 				continue
 			}
-- 
GitLab