tls: add skipVerify param in url

This commit is contained in:
nadoo 2018-07-04 16:55:45 +08:00
parent a21dcb66a3
commit c8ca1f0b25
4 changed files with 18 additions and 21 deletions

View File

@ -36,7 +36,7 @@ func init() {
proxy.RegisterDialer("ssr", NewSSRDialer)
}
// NewSSR returns a shadowsocksr proxy, ssr://method:pass@host:port/rawQuery
// NewSSR returns a shadowsocksr proxy, ssr://method:pass@host:port/query
func NewSSR(s string, dialer proxy.Dialer) (*SSR, error) {
u, err := url.Parse(s)
if err != nil {
@ -58,19 +58,11 @@ func NewSSR(s string, dialer proxy.Dialer) (*SSR, error) {
EncryptPassword: pass,
}
q, _ := url.ParseQuery(u.RawQuery)
if v, ok := q["protocol"]; ok {
p.Protocol = v[0]
}
if v, ok := q["protocol_param"]; ok {
p.ProtocolParam = v[0]
}
if v, ok := q["obfs"]; ok {
p.Obfs = v[0]
}
if v, ok := q["obfs_param"]; ok {
p.ObfsParam = v[0]
}
query := u.Query()
p.Protocol = query.Get("protocol")
p.ProtocolParam = query.Get("protocol_param")
p.Obfs = query.Get("obfs")
p.ObfsParam = query.Get("obfs_param")
return p, nil
}

View File

@ -17,6 +17,7 @@ type TLS struct {
addr string
serverName string
skipVerify bool
}
func init() {
@ -33,6 +34,9 @@ func NewTLS(s string, dialer proxy.Dialer) (*TLS, error) {
addr := u.Host
query := u.Query()
skipVerify := query.Get("InsecureSkipVerify")
colonPos := strings.LastIndex(addr, ":")
if colonPos == -1 {
colonPos = len(addr)
@ -43,6 +47,11 @@ func NewTLS(s string, dialer proxy.Dialer) (*TLS, error) {
dialer: dialer,
addr: addr,
serverName: serverName,
skipVerify: false,
}
if skipVerify == "true" {
p.skipVerify = true
}
return p, nil
@ -69,7 +78,7 @@ func (s *TLS) Dial(network, addr string) (net.Conn, error) {
conf := &stdtls.Config{
ServerName: s.serverName,
InsecureSkipVerify: true,
InsecureSkipVerify: s.skipVerify,
}
c := stdtls.Client(cc, conf)

View File

@ -203,7 +203,6 @@ func (c *Conn) Read(b []byte) (n int, err error) {
if !c.connected {
c.DecodeRespHeader()
}
return c.Conn.Read(b)
}

View File

@ -46,11 +46,8 @@ func NewVMess(s string, dialer proxy.Dialer) (*VMess, error) {
security = "NONE"
}
aid := "0"
params, _ := url.ParseQuery(u.RawQuery)
if v, ok := params["alterID"]; ok {
aid = v[0]
}
query := u.Query()
aid := query.Get("alterID")
alterID, err := strconv.ParseUint(aid, 10, 32)
if err != nil {