|
|
@@ -4,6 +4,8 @@ import (
|
|
|
"net"
|
|
|
"testing"
|
|
|
|
|
|
+ "context"
|
|
|
+
|
|
|
"v2ray.com/core/app"
|
|
|
"v2ray.com/core/app/dispatcher"
|
|
|
_ "v2ray.com/core/app/dispatcher/impl"
|
|
|
@@ -42,31 +44,36 @@ func TestDokodemoTCP(t *testing.T) {
|
|
|
space.AddApp(new(proxyman.OutboundConfig))
|
|
|
|
|
|
ohm := proxyman.OutboundHandlerManagerFromSpace(space)
|
|
|
- ohm.SetDefaultHandler(
|
|
|
- freedom.New(
|
|
|
- &freedom.Config{},
|
|
|
- space,
|
|
|
- &proxy.OutboundHandlerMeta{
|
|
|
- Address: v2net.LocalHostIP,
|
|
|
- StreamSettings: &internet.StreamConfig{
|
|
|
- Protocol: internet.TransportProtocol_TCP,
|
|
|
- },
|
|
|
- }))
|
|
|
+ ctx := context.Background()
|
|
|
+ ctx = app.ContextWithSpace(ctx, space)
|
|
|
+
|
|
|
+ freedom, err := freedom.New(proxy.ContextWithOutboundMeta(ctx, &proxy.OutboundHandlerMeta{
|
|
|
+ Address: v2net.LocalHostIP,
|
|
|
+ StreamSettings: &internet.StreamConfig{
|
|
|
+ Protocol: internet.TransportProtocol_TCP,
|
|
|
+ },
|
|
|
+ }), &freedom.Config{})
|
|
|
+ assert.Error(err).IsNil()
|
|
|
+ ohm.SetDefaultHandler(freedom)
|
|
|
|
|
|
data2Send := "Data to be sent to remote."
|
|
|
|
|
|
port := v2net.Port(dice.Roll(20000) + 10000)
|
|
|
- dokodemo := NewDokodemoDoor(&Config{
|
|
|
- Address: v2net.NewIPOrDomain(v2net.LocalHostIP),
|
|
|
- Port: uint32(tcpServer.Port),
|
|
|
- NetworkList: v2net.Network_TCP.AsList(),
|
|
|
- Timeout: 600,
|
|
|
- }, space, &proxy.InboundHandlerMeta{
|
|
|
+
|
|
|
+ ctx = proxy.ContextWithInboundMeta(ctx, &proxy.InboundHandlerMeta{
|
|
|
Address: v2net.LocalHostIP,
|
|
|
Port: port,
|
|
|
StreamSettings: &internet.StreamConfig{
|
|
|
Protocol: internet.TransportProtocol_TCP,
|
|
|
}})
|
|
|
+
|
|
|
+ dokodemo, err := NewDokodemoDoor(ctx, &Config{
|
|
|
+ Address: v2net.NewIPOrDomain(v2net.LocalHostIP),
|
|
|
+ Port: uint32(tcpServer.Port),
|
|
|
+ NetworkList: v2net.Network_TCP.AsList(),
|
|
|
+ Timeout: 600,
|
|
|
+ })
|
|
|
+ assert.Error(err).IsNil()
|
|
|
defer dokodemo.Close()
|
|
|
|
|
|
assert.Error(space.Initialize()).IsNil()
|
|
|
@@ -114,30 +121,36 @@ func TestDokodemoUDP(t *testing.T) {
|
|
|
space.AddApp(new(proxyman.OutboundConfig))
|
|
|
|
|
|
ohm := proxyman.OutboundHandlerManagerFromSpace(space)
|
|
|
- ohm.SetDefaultHandler(
|
|
|
- freedom.New(
|
|
|
- &freedom.Config{},
|
|
|
- space,
|
|
|
- &proxy.OutboundHandlerMeta{
|
|
|
- Address: v2net.AnyIP,
|
|
|
- StreamSettings: &internet.StreamConfig{
|
|
|
- Protocol: internet.TransportProtocol_TCP,
|
|
|
- }}))
|
|
|
+
|
|
|
+ ctx := context.Background()
|
|
|
+ ctx = app.ContextWithSpace(ctx, space)
|
|
|
+ freedom, err := freedom.New(proxy.ContextWithOutboundMeta(ctx, &proxy.OutboundHandlerMeta{
|
|
|
+ Address: v2net.AnyIP,
|
|
|
+ StreamSettings: &internet.StreamConfig{
|
|
|
+ Protocol: internet.TransportProtocol_TCP,
|
|
|
+ },
|
|
|
+ }), &freedom.Config{})
|
|
|
+ assert.Error(err).IsNil()
|
|
|
+ ohm.SetDefaultHandler(freedom)
|
|
|
|
|
|
data2Send := "Data to be sent to remote."
|
|
|
|
|
|
port := v2net.Port(dice.Roll(20000) + 10000)
|
|
|
- dokodemo := NewDokodemoDoor(&Config{
|
|
|
- Address: v2net.NewIPOrDomain(v2net.LocalHostIP),
|
|
|
- Port: uint32(udpServer.Port),
|
|
|
- NetworkList: v2net.Network_UDP.AsList(),
|
|
|
- Timeout: 600,
|
|
|
- }, space, &proxy.InboundHandlerMeta{
|
|
|
+
|
|
|
+ ctx = proxy.ContextWithInboundMeta(ctx, &proxy.InboundHandlerMeta{
|
|
|
Address: v2net.LocalHostIP,
|
|
|
Port: port,
|
|
|
StreamSettings: &internet.StreamConfig{
|
|
|
Protocol: internet.TransportProtocol_TCP,
|
|
|
}})
|
|
|
+
|
|
|
+ dokodemo, err := NewDokodemoDoor(ctx, &Config{
|
|
|
+ Address: v2net.NewIPOrDomain(v2net.LocalHostIP),
|
|
|
+ Port: uint32(udpServer.Port),
|
|
|
+ NetworkList: v2net.Network_UDP.AsList(),
|
|
|
+ Timeout: 600,
|
|
|
+ })
|
|
|
+ assert.Error(err).IsNil()
|
|
|
defer dokodemo.Close()
|
|
|
|
|
|
assert.Error(space.Initialize()).IsNil()
|