From 93d303b47b72227a68efa7379519dc65b6c9962d Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Tue, 12 Dec 2023 14:43:56 +0000 Subject: [PATCH] Add testing environment helpers --- client/snowflake.go | 6 +++++- proxy/lib/snowflake.go | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/client/snowflake.go b/client/snowflake.go index 648481f..fb6bbb7 100644 --- a/client/snowflake.go +++ b/client/snowflake.go @@ -271,7 +271,11 @@ func main() { switch methodName { case "snowflake": // TODO: Be able to recover when SOCKS dies. - ln, err := pt.ListenSocks("tcp", "127.0.0.1:0") + listenAddr := "127.0.0.1:0" + if forcedListenAddr := os.Getenv("SNOWFLAKE_TEST_FORCELISTENADDR"); forcedListenAddr != "" { + listenAddr = forcedListenAddr + } + ln, err := pt.ListenSocks("tcp", listenAddr) if err != nil { pt.CmethodError(methodName, err.Error()) break diff --git a/proxy/lib/snowflake.go b/proxy/lib/snowflake.go index c6c667b..114f517 100644 --- a/proxy/lib/snowflake.go +++ b/proxy/lib/snowflake.go @@ -35,6 +35,7 @@ import ( "net" "net/http" "net/url" + "os" "strings" "sync" "time" @@ -849,6 +850,11 @@ func (sf *SnowflakeProxy) Stop() { func (sf *SnowflakeProxy) checkNATType(config webrtc.Configuration, probeURL string) error { log.Printf("Checking our NAT type, contacting NAT check probe server at \"%v\"...", probeURL) + if os.Getenv("SNOWFLAKE_TEST_ASSUMEUNRESTRICTED") != "" { + currentNATType = NATUnrestricted + return nil + } + probe, err := newSignalingServer(probeURL) if err != nil { return fmt.Errorf("Error parsing url: %w", err)