mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-01-07 09:53:58 +08:00
refactor: deprecated params(up_mbps,down_mpbs,auth) in hysteria; up/down no use append unit equivalent up_mbps/down_mbps, default unit is Mbps; up/down become a required option.
This commit is contained in:
parent
8853e97b40
commit
2146b605f7
@ -4,8 +4,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"encoding/base64"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net"
|
"net"
|
||||||
@ -73,11 +71,8 @@ type HysteriaOption struct {
|
|||||||
Server string `proxy:"server"`
|
Server string `proxy:"server"`
|
||||||
Port int `proxy:"port"`
|
Port int `proxy:"port"`
|
||||||
Protocol string `proxy:"protocol,omitempty"`
|
Protocol string `proxy:"protocol,omitempty"`
|
||||||
Up string `proxy:"up,omitempty"`
|
Up string `proxy:"up"`
|
||||||
UpMbps int `proxy:"up_mbps,omitempty"`
|
Down string `proxy:"down"`
|
||||||
Down string `proxy:"down,omitempty"`
|
|
||||||
DownMbps int `proxy:"down_mbps,omitempty"`
|
|
||||||
Auth string `proxy:"auth,omitempty"`
|
|
||||||
AuthString string `proxy:"auth_str,omitempty"`
|
AuthString string `proxy:"auth_str,omitempty"`
|
||||||
Obfs string `proxy:"obfs,omitempty"`
|
Obfs string `proxy:"obfs,omitempty"`
|
||||||
SNI string `proxy:"sni,omitempty"`
|
SNI string `proxy:"sni,omitempty"`
|
||||||
@ -92,22 +87,8 @@ type HysteriaOption struct {
|
|||||||
|
|
||||||
func (c *HysteriaOption) Speed() (uint64, uint64, error) {
|
func (c *HysteriaOption) Speed() (uint64, uint64, error) {
|
||||||
var up, down uint64
|
var up, down uint64
|
||||||
if len(c.Up) > 0 {
|
|
||||||
up = stringToBps(c.Up)
|
up = stringToBps(c.Up)
|
||||||
if up == 0 {
|
|
||||||
return 0, 0, errors.New("invalid speed format")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
up = uint64(c.UpMbps) * mbpsToBps
|
|
||||||
}
|
|
||||||
if len(c.Down) > 0 {
|
|
||||||
down = stringToBps(c.Down)
|
down = stringToBps(c.Down)
|
||||||
if down == 0 {
|
|
||||||
return 0, 0, errors.New("invalid speed format")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
down = uint64(c.DownMbps) * mbpsToBps
|
|
||||||
}
|
|
||||||
return up, down, nil
|
return up, down, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,16 +154,8 @@ func NewHysteria(option HysteriaOption) (*Hysteria, error) {
|
|||||||
if !quicConfig.DisablePathMTUDiscovery && pmtud_fix.DisablePathMTUDiscovery {
|
if !quicConfig.DisablePathMTUDiscovery && pmtud_fix.DisablePathMTUDiscovery {
|
||||||
log.Infoln("hysteria: Path MTU Discovery is not yet supported on this platform")
|
log.Infoln("hysteria: Path MTU Discovery is not yet supported on this platform")
|
||||||
}
|
}
|
||||||
var auth []byte
|
|
||||||
if option.Auth != "" {
|
var auth = []byte(option.AuthString)
|
||||||
authBytes, err := base64.StdEncoding.DecodeString(option.Auth)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("hysteria %s parse auth error: %w", addr, err)
|
|
||||||
}
|
|
||||||
auth = authBytes
|
|
||||||
} else {
|
|
||||||
auth = []byte(option.AuthString)
|
|
||||||
}
|
|
||||||
var obfuscator obfs.Obfuscator
|
var obfuscator obfs.Obfuscator
|
||||||
if len(option.Obfs) > 0 {
|
if len(option.Obfs) > 0 {
|
||||||
obfuscator = obfs.NewXPlusObfuscator([]byte(option.Obfs))
|
obfuscator = obfs.NewXPlusObfuscator([]byte(option.Obfs))
|
||||||
@ -214,6 +187,12 @@ func stringToBps(s string) uint64 {
|
|||||||
if s == "" {
|
if s == "" {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// when have not unit, use Mbps
|
||||||
|
if v, err := strconv.Atoi(s); err == nil {
|
||||||
|
return stringToBps(fmt.Sprintf("%d Mbps", v))
|
||||||
|
}
|
||||||
|
|
||||||
m := rateStringRegexp.FindStringSubmatch(s)
|
m := rateStringRegexp.FindStringSubmatch(s)
|
||||||
if m == nil {
|
if m == nil {
|
||||||
return 0
|
return 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user