adjust connection type priority

pull/215/head
v2ray 2016-06-15 01:08:03 +02:00
parent 9d21c78a01
commit 103c721626
2 changed files with 9 additions and 6 deletions

View File

@ -24,10 +24,10 @@ var (
func Dial(src v2net.Address, dest v2net.Destination, settings *StreamSettings) (Connection, error) { func Dial(src v2net.Address, dest v2net.Destination, settings *StreamSettings) (Connection, error) {
if dest.IsTCP() { if dest.IsTCP() {
switch { switch {
case settings.IsCapableOf(StreamConnectionTypeKCP):
return KCPDialer(src, dest)
case settings.IsCapableOf(StreamConnectionTypeTCP): case settings.IsCapableOf(StreamConnectionTypeTCP):
return TCPDialer(src, dest) return TCPDialer(src, dest)
case settings.IsCapableOf(StreamConnectionTypeKCP):
return KCPDialer(src, dest)
case settings.IsCapableOf(StreamConnectionTypeRawTCP): case settings.IsCapableOf(StreamConnectionTypeRawTCP):
return RawTCPDialer(src, dest) return RawTCPDialer(src, dest)
} }

View File

@ -34,12 +34,15 @@ type TCPHub struct {
func ListenTCP(address v2net.Address, port v2net.Port, callback ConnectionHandler, settings *StreamSettings) (*TCPHub, error) { func ListenTCP(address v2net.Address, port v2net.Port, callback ConnectionHandler, settings *StreamSettings) (*TCPHub, error) {
var listener Listener var listener Listener
var err error var err error
if settings.IsCapableOf(StreamConnectionTypeKCP) { switch {
listener, err = KCPListenFunc(address, port) case settings.IsCapableOf(StreamConnectionTypeTCP):
} else if settings.IsCapableOf(StreamConnectionTypeTCP) {
listener, err = TCPListenFunc(address, port) listener, err = TCPListenFunc(address, port)
} else { case settings.IsCapableOf(StreamConnectionTypeKCP):
listener, err = KCPListenFunc(address, port)
case settings.IsCapableOf(StreamConnectionTypeRawTCP):
listener, err = RawTCPListenFunc(address, port) listener, err = RawTCPListenFunc(address, port)
default:
err = ErrUnsupportedStreamType
} }
if err != nil { if err != nil {