| 
					
				 | 
			
			
				@@ -4,7 +4,6 @@ import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"net" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"testing" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	socks1 "h12.me/socks" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"v2ray.com/core" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	v2net "v2ray.com/core/common/net" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"v2ray.com/core/common/protocol" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -110,56 +109,6 @@ func TestSocksBridgeTCP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	CloseAllServers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func TestSocks4(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	tcpServer := tcp.Server{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		MsgProcessor: xor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	dest, err := tcpServer.Start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	defer tcpServer.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	serverPort := pickPort() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	serverConfig := &core.Config{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Inbound: []*core.InboundConnectionConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				PortRange: v2net.SinglePortRange(serverPort), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				ListenOn:  v2net.NewIPOrDomain(v2net.LocalHostIP), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Settings: serial.ToTypedMessage(&socks.ServerConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					AuthType:   socks.AuthType_NO_AUTH, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					Address:    v2net.NewIPOrDomain(v2net.LocalHostIP), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					UdpEnabled: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Outbound: []*core.OutboundConnectionConfig{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Settings: serial.ToTypedMessage(&freedom.Config{}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(InitializeServerConfig(serverConfig)).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	dialer := socks1.DialSocksProxy(socks1.SOCKS4, v2net.TCPDestination(v2net.LocalHostIP, serverPort).NetAddr()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	conn, err := dialer("tcp", dest.NetAddr()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	payload := "test payload" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	nBytes, err := conn.Write([]byte(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Int(nBytes).Equals(len(payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	response := make([]byte, 1024) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	nBytes, err = conn.Read(response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(err).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Bytes(response[:nBytes]).Equals(xor([]byte(payload))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assert.Error(conn.Close()).IsNil() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	CloseAllServers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestSocksBridageUDP(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	assert := assert.On(t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |