mirror of
https://github.com/cmz0228/hysteria-dev.git
synced 2025-06-10 22:39:54 +00:00
chore: code improvements
This commit is contained in:
parent
cca314a938
commit
2c4bd83ae1
@ -245,35 +245,12 @@ func client(config *clientConfig) {
|
||||
}()
|
||||
}
|
||||
|
||||
//deprecated, but still support, compatibility
|
||||
if len(config.TCPRelay.Listen) > 0 {
|
||||
go func() {
|
||||
rl, err := relay.NewTCPRelay(client, transport.DefaultTransport,
|
||||
config.TCPRelay.Listen, config.TCPRelay.Remote,
|
||||
time.Duration(config.TCPRelay.Timeout)*time.Second,
|
||||
func(addr net.Addr) {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"src": addr.String(),
|
||||
}).Debug("TCP relay request")
|
||||
},
|
||||
func(addr net.Addr, err error) {
|
||||
if err != io.EOF {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"error": err,
|
||||
"src": addr.String(),
|
||||
}).Info("TCP relay error")
|
||||
} else {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"src": addr.String(),
|
||||
}).Debug("TCP relay EOF")
|
||||
}
|
||||
})
|
||||
if err != nil {
|
||||
logrus.WithField("error", err).Fatal("Failed to initialize TCP relay")
|
||||
}
|
||||
logrus.WithField("addr", config.TCPRelay.Listen).Info("TCP relay up and running")
|
||||
errChan <- rl.ListenAndServe()
|
||||
}()
|
||||
config.TCPRelays = append(config.TCPRelays, Relay{
|
||||
Listen: config.TCPRelay.Listen,
|
||||
Remote: config.TCPRelay.Remote,
|
||||
Timeout: config.TCPRelay.Timeout,
|
||||
})
|
||||
}
|
||||
|
||||
if len(config.TCPRelays) > 0 {
|
||||
@ -308,35 +285,12 @@ func client(config *clientConfig) {
|
||||
}
|
||||
}
|
||||
|
||||
// deprecated, but still support, compatibility
|
||||
if len(config.UDPRelay.Listen) > 0 {
|
||||
go func() {
|
||||
rl, err := relay.NewUDPRelay(client, transport.DefaultTransport,
|
||||
config.UDPRelay.Listen, config.UDPRelay.Remote,
|
||||
time.Duration(config.UDPRelay.Timeout)*time.Second,
|
||||
func(addr net.Addr) {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"src": addr.String(),
|
||||
}).Debug("UDP relay request")
|
||||
},
|
||||
func(addr net.Addr, err error) {
|
||||
if err != relay.ErrTimeout {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"error": err,
|
||||
"src": addr.String(),
|
||||
}).Info("UDP relay error")
|
||||
} else {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"src": addr.String(),
|
||||
}).Debug("UDP relay session closed")
|
||||
}
|
||||
})
|
||||
if err != nil {
|
||||
logrus.WithField("error", err).Fatal("Failed to initialize UDP relay")
|
||||
}
|
||||
logrus.WithField("addr", config.UDPRelay.Listen).Info("UDP relay up and running")
|
||||
errChan <- rl.ListenAndServe()
|
||||
}()
|
||||
config.UDPRelays = append(config.UDPRelays, Relay{
|
||||
Listen: config.UDPRelay.Listen,
|
||||
Remote: config.UDPRelay.Remote,
|
||||
Timeout: config.UDPRelay.Timeout,
|
||||
})
|
||||
}
|
||||
|
||||
if len(config.UDPRelays) > 0 {
|
||||
|
@ -78,6 +78,19 @@ type Relay struct {
|
||||
Timeout int `json:"timeout"`
|
||||
}
|
||||
|
||||
func (r *Relay) Check() error {
|
||||
if len(r.Listen) == 0 {
|
||||
return errors.New("no relay listen address")
|
||||
}
|
||||
if len(r.Remote) == 0 {
|
||||
return errors.New("no relay remote address")
|
||||
}
|
||||
if r.Timeout != 0 && r.Timeout <= 4 {
|
||||
return errors.New("invalid relay timeout")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type clientConfig struct {
|
||||
Server string `json:"server"`
|
||||
UpMbps int `json:"up_mbps"`
|
||||
@ -108,9 +121,9 @@ type clientConfig struct {
|
||||
Persist bool `json:"persist"`
|
||||
} `json:"tun"`
|
||||
TCPRelays []Relay `json:"relay_tcps"`
|
||||
TCPRelay Relay `json:"relay_tcp"` // deprecated, but still support, compatibility
|
||||
TCPRelay Relay `json:"relay_tcp"` // deprecated, but we still support it for backward compatibility
|
||||
UDPRelays []Relay `json:"relay_udps"`
|
||||
UDPRelay Relay `json:"relay_udp"` // deprecated, but still support, compatibility
|
||||
UDPRelay Relay `json:"relay_udp"` // deprecated, but we still support it for backward compatibility
|
||||
TCPTProxy struct {
|
||||
Listen string `json:"listen"`
|
||||
Timeout int `json:"timeout"`
|
||||
@ -139,12 +152,6 @@ func (c *clientConfig) Check() error {
|
||||
len(c.TCPTProxy.Listen) == 0 && len(c.UDPTProxy.Listen) == 0 {
|
||||
return errors.New("please enable at least one mode")
|
||||
}
|
||||
if len(c.TCPRelay.Listen) > 0 && len(c.TCPRelay.Remote) == 0 {
|
||||
return errors.New("no TCP relay remote address")
|
||||
}
|
||||
if len(c.UDPRelay.Listen) > 0 && len(c.UDPRelay.Remote) == 0 {
|
||||
return errors.New("no UDP relay remote address")
|
||||
}
|
||||
if c.SOCKS5.Timeout != 0 && c.SOCKS5.Timeout <= 4 {
|
||||
return errors.New("invalid SOCKS5 timeout")
|
||||
}
|
||||
@ -154,12 +161,28 @@ func (c *clientConfig) Check() error {
|
||||
if c.TUN.Timeout != 0 && c.TUN.Timeout < 4 {
|
||||
return errors.New("invalid TUN timeout")
|
||||
}
|
||||
if len(c.TCPRelay.Listen) > 0 && len(c.TCPRelay.Remote) == 0 {
|
||||
return errors.New("no TCP relay remote address")
|
||||
}
|
||||
if len(c.UDPRelay.Listen) > 0 && len(c.UDPRelay.Remote) == 0 {
|
||||
return errors.New("no UDP relay remote address")
|
||||
}
|
||||
if c.TCPRelay.Timeout != 0 && c.TCPRelay.Timeout <= 4 {
|
||||
return errors.New("invalid TCP relay timeout")
|
||||
}
|
||||
if c.UDPRelay.Timeout != 0 && c.UDPRelay.Timeout <= 4 {
|
||||
return errors.New("invalid UDP relay timeout")
|
||||
}
|
||||
for _, r := range c.TCPRelays {
|
||||
if err := r.Check(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
for _, r := range c.UDPRelays {
|
||||
if err := r.Check(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if c.TCPTProxy.Timeout != 0 && c.TCPTProxy.Timeout <= 4 {
|
||||
return errors.New("invalid TCP TProxy timeout")
|
||||
}
|
||||
@ -177,10 +200,10 @@ func (c *clientConfig) Check() error {
|
||||
return errors.New("invalid receive window size")
|
||||
}
|
||||
if len(c.TCPRelay.Listen) > 0 {
|
||||
logrus.Warn("config 'relay_tcp' is deprecated, please use 'relay_tcps' instead of it")
|
||||
logrus.Warn("'relay_tcp' is deprecated, please use 'relay_tcps' instead")
|
||||
}
|
||||
if len(c.UDPRelay.Listen) > 0 {
|
||||
logrus.Warn("config 'relay_udp' is deprecated, please use 'relay_udps' instead of it")
|
||||
logrus.Warn("config 'relay_udp' is deprecated, please use 'relay_udps' instead")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user