From c7d6302292ba306f11ce2ce09d68d3951b4744a8 Mon Sep 17 00:00:00 2001 From: v2ray Date: Sat, 6 Aug 2016 22:52:02 +0200 Subject: [PATCH] load srtp in main --- shell/point/main/main.go | 2 ++ .../obsrtp/obsrtp.go => authenticators/srtp/srtp.go} | 2 +- transport/internet/kcp/config_json.go | 9 ++++++++- transport/internet/kcp/connection_test.go | 4 ++-- transport/internet/kcp/dialer.go | 4 +++- 5 files changed, 16 insertions(+), 5 deletions(-) rename transport/internet/{internal/obsrtp/obsrtp.go => authenticators/srtp/srtp.go} (98%) diff --git a/shell/point/main/main.go b/shell/point/main/main.go index 2e089c0b..4f94a9f2 100644 --- a/shell/point/main/main.go +++ b/shell/point/main/main.go @@ -25,6 +25,8 @@ import ( _ "github.com/v2ray/v2ray-core/transport/internet/kcp" _ "github.com/v2ray/v2ray-core/transport/internet/tcp" _ "github.com/v2ray/v2ray-core/transport/internet/udp" + + _ "github.com/v2ray/v2ray-core/transport/internet/authenticators/srtp" ) var ( diff --git a/transport/internet/internal/obsrtp/obsrtp.go b/transport/internet/authenticators/srtp/srtp.go similarity index 98% rename from transport/internet/internal/obsrtp/obsrtp.go rename to transport/internet/authenticators/srtp/srtp.go index 1c0e5bd5..bba706a5 100644 --- a/transport/internet/internal/obsrtp/obsrtp.go +++ b/transport/internet/authenticators/srtp/srtp.go @@ -1,4 +1,4 @@ -package obsrtp +package srtp import ( "math/rand" diff --git a/transport/internet/kcp/config_json.go b/transport/internet/kcp/config_json.go index 0ead70a9..90629bec 100644 --- a/transport/internet/kcp/config_json.go +++ b/transport/internet/kcp/config_json.go @@ -7,6 +7,7 @@ import ( "github.com/v2ray/v2ray-core/common" "github.com/v2ray/v2ray-core/common/log" + "github.com/v2ray/v2ray-core/transport/internet" ) func (this *Config) UnmarshalJSON(data []byte) error { @@ -66,7 +67,13 @@ func (this *Config) UnmarshalJSON(data []byte) error { } } if len(jsonConfig.HeaderConfig) > 0 { - this.HeaderConfig = jsonConfig.HeaderConfig + name, config, err := internet.CreateAuthenticatorConfig(jsonConfig.HeaderConfig) + if err != nil { + log.Error("KCP|Config: Failed to parse header config: ", err) + return err + } + this.HeaderType = name + this.HeaderConfig = config } return nil diff --git a/transport/internet/kcp/connection_test.go b/transport/internet/kcp/connection_test.go index 6f3cfb00..8c6c067a 100644 --- a/transport/internet/kcp/connection_test.go +++ b/transport/internet/kcp/connection_test.go @@ -10,7 +10,7 @@ import ( v2net "github.com/v2ray/v2ray-core/common/net" "github.com/v2ray/v2ray-core/testing/assert" "github.com/v2ray/v2ray-core/transport/internet" - "github.com/v2ray/v2ray-core/transport/internet/internal/obsrtp" + "github.com/v2ray/v2ray-core/transport/internet/authenticators/srtp" . "github.com/v2ray/v2ray-core/transport/internet/kcp" ) @@ -42,7 +42,7 @@ func TestConnectionReadWrite(t *testing.T) { upReader, upWriter := io.Pipe() downReader, downWriter := io.Pipe() - auth := internet.NewAuthenticatorChain(obsrtp.ObfuscatorSRTPFactory{}.Create(nil), NewSimpleAuthenticator()) + auth := internet.NewAuthenticatorChain(srtp.ObfuscatorSRTPFactory{}.Create(nil), NewSimpleAuthenticator()) connClient := NewConnection(1, upWriter, &net.UDPAddr{IP: v2net.LocalHostIP.IP(), Port: 1}, &net.UDPAddr{IP: v2net.LocalHostIP.IP(), Port: 2}, auth) connClient.FetchInputFrom(downReader) diff --git a/transport/internet/kcp/dialer.go b/transport/internet/kcp/dialer.go index f66520f3..8061db0a 100644 --- a/transport/internet/kcp/dialer.go +++ b/transport/internet/kcp/dialer.go @@ -16,14 +16,16 @@ var ( func DialKCP(src v2net.Address, dest v2net.Destination) (internet.Connection, error) { udpDest := v2net.UDPDestination(dest.Address(), dest.Port()) - log.Info("Dialling KCP to ", udpDest) + log.Info("KCP|Dialer: Dialing KCP to ", udpDest) conn, err := internet.DialToDest(src, udpDest) if err != nil { + log.Error("KCP|Dialer: Failed to dial to dest: ", err) return nil, err } cpip, err := effectiveConfig.GetAuthenticator() if err != nil { + log.Error("KCP|Dialer: Failed to create authenticator: ", err) return nil, err } conv := uint16(atomic.AddUint32(&globalConv, 1))