Signed-off-by: arraykeys@gmail.com <arraykeys@gmail.com>
This commit is contained in:
@ -6,7 +6,8 @@ v4.8
|
|||||||
--disable-socks:禁用socks代理
|
--disable-socks:禁用socks代理
|
||||||
默认都是false(开启).
|
默认都是false(开启).
|
||||||
3.重构了部分代码的日志部分,保证了日志按着预期输出.
|
3.重构了部分代码的日志部分,保证了日志按着预期输出.
|
||||||
|
4.修复了sps\http代理初始化服务的时机不正确,导致nil异常的bug.
|
||||||
|
5.优化了sps日志输出.
|
||||||
|
|
||||||
v4.7
|
v4.7
|
||||||
1.增加了基于gomobile的sdk,对android/ios/windows/linux/mac提供SDK支持.
|
1.增加了基于gomobile的sdk,对android/ios/windows/linux/mac提供SDK支持.
|
||||||
|
|||||||
@ -238,6 +238,13 @@ func Start(serviceID, serviceArgsStr string) (errStr string) {
|
|||||||
spsArgs.ParentKey = sps.Flag("parent-key", "the password for auto encrypt/decrypt parent connection data").Short('Z').Default("").String()
|
spsArgs.ParentKey = sps.Flag("parent-key", "the password for auto encrypt/decrypt parent connection data").Short('Z').Default("").String()
|
||||||
spsArgs.LocalCompress = sps.Flag("local-compress", "auto compress/decompress data on local connection").Short('m').Default("false").Bool()
|
spsArgs.LocalCompress = sps.Flag("local-compress", "auto compress/decompress data on local connection").Short('m').Default("false").Bool()
|
||||||
spsArgs.ParentCompress = sps.Flag("parent-compress", "auto compress/decompress data on parent connection").Short('M').Default("false").Bool()
|
spsArgs.ParentCompress = sps.Flag("parent-compress", "auto compress/decompress data on parent connection").Short('M').Default("false").Bool()
|
||||||
|
spsArgs.SSMethod = sps.Flag("ss-method", "").Hidden().Short('h').Default("aes-256-cfb").String()
|
||||||
|
spsArgs.SSKey = sps.Flag("ss-key", "").Hidden().Short('j').Default("sspassword").String()
|
||||||
|
spsArgs.ParentSSMethod = sps.Flag("parent-ss-method", "").Hidden().Short('H').Default("aes-256-cfb").String()
|
||||||
|
spsArgs.ParentSSKey = sps.Flag("parent-ss-key", "").Hidden().Short('J').Default("sspassword").String()
|
||||||
|
spsArgs.DisableHTTP = sps.Flag("disable-http", "disable http(s) proxy").Default("false").Bool()
|
||||||
|
spsArgs.DisableSocks5 = sps.Flag("disable-socks", "disable socks proxy").Default("false").Bool()
|
||||||
|
spsArgs.DisableSS = sps.Flag("disable-ss", "").Hidden().Default("false").Bool()
|
||||||
|
|
||||||
//parse args
|
//parse args
|
||||||
_args := strings.Fields(strings.Trim(serviceArgsStr, " "))
|
_args := strings.Fields(strings.Trim(serviceArgsStr, " "))
|
||||||
|
|||||||
@ -167,13 +167,16 @@ func (s *HTTP) Start(args interface{}, log *logger.Logger) (err error) {
|
|||||||
if err = s.CheckArgs(); err != nil {
|
if err = s.CheckArgs(); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err = s.InitService(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if *s.cfg.Parent != "" {
|
if *s.cfg.Parent != "" {
|
||||||
s.log.Printf("use %s parent %s", *s.cfg.ParentType, *s.cfg.Parent)
|
s.log.Printf("use %s parent %s", *s.cfg.ParentType, *s.cfg.Parent)
|
||||||
s.InitOutConnPool()
|
s.InitOutConnPool()
|
||||||
}
|
}
|
||||||
if err = s.InitService(); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for _, addr := range strings.Split(*s.cfg.Local, ",") {
|
for _, addr := range strings.Split(*s.cfg.Local, ",") {
|
||||||
if addr != "" {
|
if addr != "" {
|
||||||
host, port, _ := net.SplitHostPort(addr)
|
host, port, _ := net.SplitHostPort(addr)
|
||||||
|
|||||||
@ -69,10 +69,13 @@ func (s *SPS) CheckArgs() (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
func (s *SPS) InitService() (err error) {
|
func (s *SPS) InitService() (err error) {
|
||||||
s.InitOutConnPool()
|
|
||||||
if *s.cfg.DNSAddress != "" {
|
if *s.cfg.DNSAddress != "" {
|
||||||
(*s).domainResolver = utils.NewDomainResolver(*s.cfg.DNSAddress, *s.cfg.DNSTTL, s.log)
|
(*s).domainResolver = utils.NewDomainResolver(*s.cfg.DNSAddress, *s.cfg.DNSTTL, s.log)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s.InitOutConnPool()
|
||||||
|
|
||||||
err = s.InitBasicAuth()
|
err = s.InitBasicAuth()
|
||||||
if *s.cfg.SSMethod != "" && *s.cfg.SSKey != "" {
|
if *s.cfg.SSMethod != "" && *s.cfg.SSKey != "" {
|
||||||
s.localCipher, err = ss.NewCipher(*s.cfg.SSMethod, *s.cfg.SSKey)
|
s.localCipher, err = ss.NewCipher(*s.cfg.SSMethod, *s.cfg.SSKey)
|
||||||
|
|||||||
@ -669,7 +669,6 @@ type DomainResolverItem struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewDomainResolver(dnsAddrress string, ttl int, log *logger.Logger) DomainResolver {
|
func NewDomainResolver(dnsAddrress string, ttl int, log *logger.Logger) DomainResolver {
|
||||||
|
|
||||||
return DomainResolver{
|
return DomainResolver{
|
||||||
ttl: ttl,
|
ttl: ttl,
|
||||||
dnsAddrress: dnsAddrress,
|
dnsAddrress: dnsAddrress,
|
||||||
@ -751,7 +750,7 @@ func (a *DomainResolver) Resolve(address string) (ip string, err error) {
|
|||||||
func (a *DomainResolver) PrintData() {
|
func (a *DomainResolver) PrintData() {
|
||||||
for k, item := range a.data.Items() {
|
for k, item := range a.data.Items() {
|
||||||
d := item.(*DomainResolverItem)
|
d := item.(*DomainResolverItem)
|
||||||
fmt.Printf("%s:ip[%s],domain[%s],expired at[%d]\n", k, (*d).ip, (*d).domain, (*d).expiredAt)
|
a.log.Printf("%s:ip[%s],domain[%s],expired at[%d]\n", k, (*d).ip, (*d).domain, (*d).expiredAt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func NewCompStream(conn net.Conn) *CompStream {
|
func NewCompStream(conn net.Conn) *CompStream {
|
||||||
|
|||||||
Reference in New Issue
Block a user