From 0bd196e7cc00ee9dfa65bec337b824663f72be04 Mon Sep 17 00:00:00 2001 From: jkito <belter@riseup.net> Date: Tue, 15 Oct 2024 01:40:36 +0530 Subject: [PATCH] enable setting introducer url using env variable check if the LEAP_INTRODUCER_URL env variable is non-empty and use its value as introducer URL this allows us to test the introducer feature in the client --- pkg/vpn/bonafide/bonafide.go | 20 ++++++++++++++++++++ pkg/vpn/menshen/init.go | 5 +++++ 2 files changed, 25 insertions(+) diff --git a/pkg/vpn/bonafide/bonafide.go b/pkg/vpn/bonafide/bonafide.go index c6d07cb8..6c2b3517 100644 --- a/pkg/vpn/bonafide/bonafide.go +++ b/pkg/vpn/bonafide/bonafide.go @@ -30,6 +30,7 @@ import ( "github.com/rs/zerolog/log" + "0xacab.org/leap/bitmask-core/pkg/introducer" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/snowflake" ) @@ -100,6 +101,25 @@ func New() *Bonafide { }, Timeout: time.Second * 30, } + + // experimental introducer + if introURL := os.Getenv("LEAP_INTRODUCER_URL"); introURL != "" { + inr, err := introducer.NewIntroducerFromURL(introURL) + if err != nil { + log.Debug(). + Err(err). + Str("introducer URL", introURL). + Msg("failed to create introducer from URL") + } + + client, err = introducer.NewHTTPClientFromIntroducer(inr) + if err != nil { + log.Debug(). + Err(err). + Msg("failed to create http client from introducer") + } + } + client.Timeout = time.Minute _, tzOffsetSeconds := time.Now().Zone() tzOffsetHours := tzOffsetSeconds / secondsPerHour diff --git a/pkg/vpn/menshen/init.go b/pkg/vpn/menshen/init.go index 809aafa3..90f9989d 100644 --- a/pkg/vpn/menshen/init.go +++ b/pkg/vpn/menshen/init.go @@ -41,6 +41,11 @@ func New() (*Menshen, error) { cfg.STUNServers = config.STUNServers cfg.CountryCodeLookupURL = config.CountryCodeLookupURL + // experimental introducer + if introURL := os.Getenv("LEAP_INTRODUCER_URL"); introURL != "" { + cfg.Introducer = introURL + } + api, err := bootstrap.NewAPI(cfg) if err != nil { return nil, err -- GitLab