This commit is contained in:
ginuerzh
2021-11-15 12:55:05 +08:00
parent 3fe5084629
commit ce3d62759a
38 changed files with 788 additions and 291 deletions

View File

@ -6,8 +6,6 @@ import (
"errors"
"fmt"
"net"
"net/url"
"strings"
"time"
"github.com/go-gost/gosocks5"
@ -172,19 +170,3 @@ func (c *socks5Connector) connectUDP(ctx context.Context, conn net.Conn, network
return socks.UDPTunClientConn(conn, addr), nil
}
func (c *socks5Connector) parseMetadata(md md.Metadata) (err error) {
if v := md.GetString(auth); v != "" {
ss := strings.SplitN(v, ":", 2)
if len(ss) == 1 {
c.md.User = url.User(ss[0])
} else {
c.md.User = url.UserPassword(ss[0], ss[1])
}
}
c.md.connectTimeout = md.GetDuration(connectTimeout)
c.md.noTLS = md.GetBool(noTLS)
return
}

View File

@ -3,13 +3,10 @@ package v5
import (
"crypto/tls"
"net/url"
"strings"
"time"
)
const (
connectTimeout = "timeout"
auth = "auth"
noTLS = "notls"
md "github.com/go-gost/gost/pkg/metadata"
)
type metadata struct {
@ -18,3 +15,25 @@ type metadata struct {
tlsConfig *tls.Config
noTLS bool
}
func (c *socks5Connector) parseMetadata(md md.Metadata) (err error) {
const (
connectTimeout = "timeout"
auth = "auth"
noTLS = "notls"
)
if v := md.GetString(auth); v != "" {
ss := strings.SplitN(v, ":", 2)
if len(ss) == 1 {
c.md.User = url.User(ss[0])
} else {
c.md.User = url.UserPassword(ss[0], ss[1])
}
}
c.md.connectTimeout = md.GetDuration(connectTimeout)
c.md.noTLS = md.GetBool(noTLS)
return
}