update config

This commit is contained in:
ginuerzh
2022-01-03 23:45:49 +08:00
parent 14537d16ea
commit 566e930010
42 changed files with 412 additions and 521 deletions

View File

@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"net"
"net/url"
"strconv"
"time"
@ -21,6 +22,7 @@ func init() {
}
type socks4Connector struct {
user *url.Userinfo
md metadata
logger logger.Logger
}
@ -32,6 +34,7 @@ func NewConnector(opts ...connector.Option) connector.Connector {
}
return &socks4Connector{
user: options.User,
logger: options.Logger,
}
}
@ -96,7 +99,11 @@ func (c *socks4Connector) Connect(ctx context.Context, conn net.Conn, network, a
defer conn.SetDeadline(time.Time{})
}
req := gosocks4.NewRequest(gosocks4.CmdConnect, addr, nil)
var userid []byte
if c.user != nil && c.user.Username() != "" {
userid = []byte(c.user.Username())
}
req := gosocks4.NewRequest(gosocks4.CmdConnect, addr, userid)
if err := req.Write(conn); err != nil {
c.logger.Error(err)
return nil, err

View File

@ -1,7 +1,6 @@
package v4
import (
"net/url"
"time"
mdata "github.com/go-gost/gost/pkg/metadata"
@ -9,20 +8,15 @@ import (
type metadata struct {
connectTimeout time.Duration
User *url.Userinfo
disable4a bool
}
func (c *socks4Connector) parseMetadata(md mdata.Metadata) (err error) {
const (
connectTimeout = "timeout"
user = "user"
disable4a = "disable4a"
)
if v := mdata.GetString(md, user); v != "" {
c.md.User = url.User(v)
}
c.md.connectTimeout = mdata.GetDuration(md, connectTimeout)
c.md.disable4a = mdata.GetBool(md, disable4a)

View File

@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"net"
"net/url"
"time"
"github.com/go-gost/gosocks5"
@ -23,6 +24,7 @@ func init() {
type socks5Connector struct {
selector gosocks5.Selector
user *url.Userinfo
logger logger.Logger
md metadata
}
@ -34,6 +36,7 @@ func NewConnector(opts ...connector.Option) connector.Connector {
}
return &socks5Connector{
user: options.User,
logger: options.Logger,
}
}
@ -49,7 +52,7 @@ func (c *socks5Connector) Init(md md.Metadata) (err error) {
gosocks5.MethodUserPass,
},
logger: c.logger,
User: c.md.User,
User: c.user,
TLSConfig: c.md.tlsConfig,
}
if !c.md.noTLS {

View File

@ -2,8 +2,6 @@ package v5
import (
"crypto/tls"
"net/url"
"strings"
"time"
mdata "github.com/go-gost/gost/pkg/metadata"
@ -11,7 +9,6 @@ import (
type metadata struct {
connectTimeout time.Duration
User *url.Userinfo
tlsConfig *tls.Config
noTLS bool
}
@ -19,19 +16,9 @@ type metadata struct {
func (c *socks5Connector) parseMetadata(md mdata.Metadata) (err error) {
const (
connectTimeout = "timeout"
user = "user"
noTLS = "notls"
)
if v := mdata.GetString(md, user); 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 = mdata.GetDuration(md, connectTimeout)
c.md.noTLS = mdata.GetBool(md, noTLS)