From 4b2fd550602d433a5ed28317c6092af086b3e93e Mon Sep 17 00:00:00 2001 From: Toby Date: Sat, 8 Oct 2022 15:47:24 -0700 Subject: [PATCH] chore: minor code tweaks --- cmd/client.go | 16 +++++++++------- cmd/config.go | 12 +++++++++--- cmd/server.go | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/cmd/client.go b/cmd/client.go index 363a373..c11d365 100644 --- a/cmd/client.go +++ b/cmd/client.go @@ -75,14 +75,14 @@ func client(config *clientConfig) { MaxStreamReceiveWindow: config.ReceiveWindowConn, InitialConnectionReceiveWindow: config.ReceiveWindow, MaxConnectionReceiveWindow: config.ReceiveWindow, - HandshakeIdleTimeout: time.Duration(config.QUICSettings.HandshakeIdleTimeout) * time.Second, - MaxIdleTimeout: time.Duration(config.QUICSettings.MaxIdleTimeout) * time.Second, + HandshakeIdleTimeout: time.Duration(config.Connectivity.HandshakeIdleTimeout) * time.Second, + MaxIdleTimeout: time.Duration(config.Connectivity.MaxIdleTimeout) * time.Second, DisablePathMTUDiscovery: config.DisableMTUDiscovery, EnableDatagrams: true, } quicConfig.KeepAlivePeriod = quicConfig.MaxIdleTimeout / 2 - if quicConfig.KeepAlivePeriod == 0 || quicConfig.KeepAlivePeriod > KeepAlivePeriod { - quicConfig.KeepAlivePeriod = KeepAlivePeriod + if quicConfig.KeepAlivePeriod == 0 { + quicConfig.KeepAlivePeriod = DefaultKeepAlivePeriod } if config.ReceiveWindowConn == 0 { quicConfig.InitialStreamReceiveWindow = DefaultStreamReceiveWindow @@ -147,14 +147,16 @@ func client(config *clientConfig) { func(refBPS uint64) congestion.CongestionControl { return hyCongestion.NewBrutalSender(congestion.ByteCount(refBPS)) }, obfuscator, func(err error) { - if config.QUICSettings.DisableAutoReconnect { + if config.Connectivity.DisableAutoReconnect { logrus.WithFields(logrus.Fields{ + "addr": config.Server, "error": err, - }).Fatal("QUIC connection lost, exiting...") + }).Fatal("Connection to server lost, exiting...") } else { logrus.WithFields(logrus.Fields{ + "addr": config.Server, "error": err, - }).Info("QUIC connection lost, reconnecting...") + }).Info("Connection to server lost, reconnecting...") } }) if err != nil { diff --git a/cmd/config.go b/cmd/config.go index fd7037d..7c5de54 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -23,7 +23,7 @@ const ( DefaultMMDBFilename = "GeoLite2-Country.mmdb" - KeepAlivePeriod = 10 * time.Second + DefaultKeepAlivePeriod = 10 * time.Second ) var rateStringRegexp = regexp.MustCompile(`^(\d+)\s*([KMGT]?)([Bb])ps$`) @@ -147,11 +147,11 @@ type clientConfig struct { Retry int `json:"retry"` RetryInterval int `json:"retry_interval"` // Optional below - QUICSettings struct { + Connectivity struct { DisableAutoReconnect bool `json:"disable_auto_reconnect"` HandshakeIdleTimeout int `json:"handshake_idle_timeout"` MaxIdleTimeout int `json:"max_idle_timeout"` - } `json:"quic_settings"` + } `json:"connectivity"` SOCKS5 struct { Listen string `json:"listen"` Timeout int `json:"timeout"` @@ -236,6 +236,12 @@ func (c *clientConfig) Check() error { len(c.TCPRedirect.Listen) == 0 { return errors.New("please enable at least one mode") } + if c.Connectivity.HandshakeIdleTimeout != 0 && c.Connectivity.HandshakeIdleTimeout <= 2 { + return errors.New("invalid handshake idle timeout") + } + if c.Connectivity.MaxIdleTimeout != 0 && c.Connectivity.MaxIdleTimeout <= 4 { + return errors.New("invalid max idle timeout") + } if c.SOCKS5.Timeout != 0 && c.SOCKS5.Timeout <= 4 { return errors.New("invalid SOCKS5 timeout") } diff --git a/cmd/server.go b/cmd/server.go index adc0658..a529e72 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -77,7 +77,7 @@ func server(config *serverConfig) { InitialConnectionReceiveWindow: config.ReceiveWindowClient, MaxConnectionReceiveWindow: config.ReceiveWindowClient, MaxIncomingStreams: int64(config.MaxConnClient), - KeepAlivePeriod: KeepAlivePeriod, + KeepAlivePeriod: DefaultKeepAlivePeriod, DisablePathMTUDiscovery: config.DisableMTUDiscovery, EnableDatagrams: true, }