[tor-commits] [snowflake/main] Add NAT Type test periodic task

meskio at torproject.org meskio at torproject.org
Tue Nov 16 19:37:40 UTC 2021


commit a6a53ff8ceb3ac48ac1fc1165255df8ebc9c685b
Author: Shelikhoo <xiaokangwang at outlook.com>
Date:   Thu Nov 4 20:34:32 2021 +0000

    Add NAT Type test periodic task
---
 proxy/lib/snowflake.go | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/proxy/lib/snowflake.go b/proxy/lib/snowflake.go
index f979ed0..b133c67 100644
--- a/proxy/lib/snowflake.go
+++ b/proxy/lib/snowflake.go
@@ -41,6 +41,7 @@ import (
 	"time"
 
 	"git.torproject.org/pluggable-transports/snowflake.git/v2/common/messages"
+	"git.torproject.org/pluggable-transports/snowflake.git/v2/common/task"
 	"git.torproject.org/pluggable-transports/snowflake.git/v2/common/util"
 	"git.torproject.org/pluggable-transports/snowflake.git/v2/common/websocketconn"
 	"github.com/gorilla/websocket"
@@ -546,6 +547,19 @@ func (sf *SnowflakeProxy) Start() error {
 
 	log.Printf("NAT type: %s", currentNATTypeLoaded)
 
+	NatRetestTask := task.Periodic{
+		Interval: time.Second * time.Duration(sf.NATTypeMeasurementIntervalSecond),
+		Execute: func() error {
+			sf.checkNATType(config, sf.NATProbeURL)
+			return nil
+		},
+	}
+
+	if sf.NATTypeMeasurementIntervalSecond != 0 {
+		NatRetestTask.Start()
+		defer NatRetestTask.Close()
+	}
+
 	ticker := time.NewTicker(pollInterval)
 	defer ticker.Stop()
 





More information about the tor-commits mailing list