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) 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) { func NewSSR(s string, dialer proxy.Dialer) (*SSR, error) {
u, err := url.Parse(s) u, err := url.Parse(s)
if err != nil { if err != nil {
@ -58,19 +58,11 @@ func NewSSR(s string, dialer proxy.Dialer) (*SSR, error) {
EncryptPassword: pass, EncryptPassword: pass,
} }
q, _ := url.ParseQuery(u.RawQuery) query := u.Query()
if v, ok := q["protocol"]; ok { p.Protocol = query.Get("protocol")
p.Protocol = v[0] p.ProtocolParam = query.Get("protocol_param")
} p.Obfs = query.Get("obfs")
if v, ok := q["protocol_param"]; ok { p.ObfsParam = query.Get("obfs_param")
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]
}
return p, nil return p, nil
} }

View File

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

View File

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

View File

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