server: remove network parameter in server mode

This commit is contained in:
nadoo 2017-09-07 23:50:10 +08:00
parent 30f340dc86
commit e32bf1a0f6
5 changed files with 8 additions and 9 deletions

View File

@ -42,7 +42,7 @@ func DialerFromURL(s string, cDialer Dialer) (Dialer, error) {
case "http": case "http":
return NewHTTP(addr, cDialer, nil) return NewHTTP(addr, cDialer, nil)
case "socks5": case "socks5":
return NewSOCKS5("tcp", addr, user, pass, cDialer, nil) return NewSOCKS5(addr, user, pass, cDialer, nil)
case "ss": case "ss":
p, err := NewSS(addr, user, pass, cDialer, nil) p, err := NewSS(addr, user, pass, cDialer, nil)
return p, err return p, err

View File

@ -27,14 +27,14 @@ type MixedProxy struct {
} }
// NewMixedProxy returns a mixed proxy. // NewMixedProxy returns a mixed proxy.
func NewMixedProxy(network, addr, user, pass string, sDialer Dialer) (*MixedProxy, error) { func NewMixedProxy(addr, user, pass string, sDialer Dialer) (*MixedProxy, error) {
p := &MixedProxy{ p := &MixedProxy{
sDialer: sDialer, sDialer: sDialer,
addr: addr, addr: addr,
} }
p.http, _ = NewHTTP(addr, nil, sDialer) p.http, _ = NewHTTP(addr, nil, sDialer)
p.socks5, _ = NewSOCKS5(network, addr, user, pass, nil, sDialer) p.socks5, _ = NewSOCKS5(addr, user, pass, nil, sDialer)
return p, nil return p, nil
} }

View File

@ -41,11 +41,11 @@ func ServerFromURL(s string, sDialer Dialer) (Server, error) {
switch u.Scheme { switch u.Scheme {
case "mixed": case "mixed":
return NewMixedProxy("tcp", addr, user, pass, sDialer) return NewMixedProxy(addr, user, pass, sDialer)
case "http": case "http":
return NewHTTP(addr, nil, sDialer) return NewHTTP(addr, nil, sDialer)
case "socks5": case "socks5":
return NewSOCKS5("tcp", addr, user, pass, nil, sDialer) return NewSOCKS5(addr, user, pass, nil, sDialer)
case "ss": case "ss":
p, err := NewSS(addr, user, pass, nil, sDialer) p, err := NewSS(addr, user, pass, nil, sDialer)
return p, err return p, err

View File

@ -60,14 +60,13 @@ type SOCKS5 struct {
*Forwarder *Forwarder
sDialer Dialer sDialer Dialer
network string
user string user string
password string password string
} }
// NewSOCKS5 returns a Proxy that makes SOCKSv5 connections to the given address // NewSOCKS5 returns a Proxy that makes SOCKSv5 connections to the given address
// with an optional username and password. See RFC 1928. // with an optional username and password. See RFC 1928.
func NewSOCKS5(network, addr, user, pass string, cDialer Dialer, sDialer Dialer) (*SOCKS5, error) { func NewSOCKS5(addr, user, pass string, cDialer Dialer, sDialer Dialer) (*SOCKS5, error) {
s := &SOCKS5{ s := &SOCKS5{
Forwarder: NewForwarder(addr, cDialer), Forwarder: NewForwarder(addr, cDialer),
sDialer: sDialer, sDialer: sDialer,
@ -136,7 +135,7 @@ func (s *SOCKS5) Dial(network, addr string) (net.Conn, error) {
switch network { switch network {
case "tcp", "tcp6", "tcp4": case "tcp", "tcp6", "tcp4":
default: default:
return nil, errors.New("proxy: no support for SOCKS5 proxy connections of type " + network) return nil, errors.New("proxy-socks5: no support for connection type " + network)
} }
c, err := s.cDialer.Dial(network, s.addr) c, err := s.cDialer.Dial(network, s.addr)

2
ss.go
View File

@ -171,7 +171,7 @@ func (s *SS) Dial(network, addr string) (net.Conn, error) {
return nil, errors.New("Unable to parse address: " + addr) return nil, errors.New("Unable to parse address: " + addr)
} }
c, err := s.cDialer.Dial("tcp", s.addr) c, err := s.cDialer.Dial(network, s.addr)
if err != nil { if err != nil {
logf("dial to %s error: %s", s.addr, err) logf("dial to %s error: %s", s.addr, err)
return nil, err return nil, err