update handler options

This commit is contained in:
ginuerzh
2022-01-04 21:56:58 +08:00
parent 566e930010
commit c428b37a36
36 changed files with 468 additions and 524 deletions
-1
View File
@@ -15,7 +15,6 @@ type metadata struct {
func (c *httpConnector) parseMetadata(md mdata.Metadata) (err error) {
const (
connectTimeout = "timeout"
user = "user"
header = "header"
)
+7 -7
View File
@@ -6,7 +6,6 @@ import (
"errors"
"fmt"
"net"
"net/url"
"time"
"github.com/go-gost/gosocks5"
@@ -24,20 +23,19 @@ func init() {
type socks5Connector struct {
selector gosocks5.Selector
user *url.Userinfo
logger logger.Logger
md metadata
options connector.Options
}
func NewConnector(opts ...connector.Option) connector.Connector {
options := &connector.Options{}
options := connector.Options{}
for _, opt := range opts {
opt(options)
opt(&options)
}
return &socks5Connector{
user: options.User,
logger: options.Logger,
options: options,
}
}
@@ -46,13 +44,15 @@ func (c *socks5Connector) Init(md md.Metadata) (err error) {
return
}
c.logger = c.options.Logger
selector := &clientSelector{
methods: []uint8{
gosocks5.MethodNoAuth,
gosocks5.MethodUserPass,
},
logger: c.logger,
User: c.user,
User: c.options.User,
TLSConfig: c.md.tlsConfig,
}
if !c.md.noTLS {
+11 -12
View File
@@ -4,7 +4,6 @@ import (
"context"
"fmt"
"net"
"net/url"
"time"
"github.com/go-gost/gosocks5"
@@ -22,21 +21,21 @@ func init() {
}
type ssConnector struct {
user *url.Userinfo
cipher core.Cipher
md metadata
logger logger.Logger
cipher core.Cipher
md metadata
logger logger.Logger
options connector.Options
}
func NewConnector(opts ...connector.Option) connector.Connector {
options := &connector.Options{}
options := connector.Options{}
for _, opt := range opts {
opt(options)
opt(&options)
}
return &ssConnector{
user: options.User,
logger: options.Logger,
options: options,
logger: options.Logger,
}
}
@@ -45,9 +44,9 @@ func (c *ssConnector) Init(md md.Metadata) (err error) {
return
}
if c.user != nil {
method := c.user.Username()
password, _ := c.user.Password()
if c.options.User != nil {
method := c.options.User.Username()
password, _ := c.options.User.Password()
c.cipher, err = ss.ShadowCipher(method, password, c.md.key)
}
+11 -12
View File
@@ -4,7 +4,6 @@ import (
"context"
"fmt"
"net"
"net/url"
"time"
"github.com/go-gost/gost/pkg/common/util/socks"
@@ -21,21 +20,21 @@ func init() {
}
type ssuConnector struct {
user *url.Userinfo
cipher core.Cipher
md metadata
logger logger.Logger
cipher core.Cipher
md metadata
logger logger.Logger
options connector.Options
}
func NewConnector(opts ...connector.Option) connector.Connector {
options := &connector.Options{}
options := connector.Options{}
for _, opt := range opts {
opt(options)
opt(&options)
}
return &ssuConnector{
user: options.User,
logger: options.Logger,
options: options,
logger: options.Logger,
}
}
@@ -44,9 +43,9 @@ func (c *ssuConnector) Init(md md.Metadata) (err error) {
return
}
if c.user != nil {
method := c.user.Username()
password, _ := c.user.Password()
if c.options.User != nil {
method := c.options.User.Username()
password, _ := c.options.User.Password()
c.cipher, err = ss.ShadowCipher(method, password, c.md.key)
}