Add NAT Type test periodic task

This commit is contained in:
Shelikhoo 2021-11-04 20:34:32 +00:00
parent ac97ce7136
commit a6a53ff8ce
No known key found for this signature in database
GPG key ID: C4D5E79D22B25316

View file

@ -41,6 +41,7 @@ import (
"time" "time"
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/messages" "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/util"
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/websocketconn" "git.torproject.org/pluggable-transports/snowflake.git/v2/common/websocketconn"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
@ -546,6 +547,19 @@ func (sf *SnowflakeProxy) Start() error {
log.Printf("NAT type: %s", currentNATTypeLoaded) 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) ticker := time.NewTicker(pollInterval)
defer ticker.Stop() defer ticker.Stop()