diff --git a/pkg/vpn/bonafide/bonafide.go b/pkg/vpn/bonafide/bonafide.go index c6d07cb89fc89e50a9d4aa3665d38100a484878b..6c2b3517a47bff38466f8247869f70603f1d899b 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 809aafa38985411bb1f9a88b9ad8cc272dde22e6..90f9989deb01c6fcc45df530889b4f816fd06560 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