|
|
|
@ -171,6 +171,51 @@ func TestSocksTcpConnectWithWrongUserPass(t *testing.T) {
|
|
|
|
|
assert.Error(err).IsNotNil()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestSocksTcpConnectWithWrongAuthMethod(t *testing.T) {
|
|
|
|
|
assert := unit.Assert(t)
|
|
|
|
|
port := uint16(38405)
|
|
|
|
|
|
|
|
|
|
och := &mocks.OutboundConnectionHandler{
|
|
|
|
|
Data2Send: bytes.NewBuffer(make([]byte, 0, 1024)),
|
|
|
|
|
Data2Return: []byte("The data to be returned to socks server."),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
core.RegisterOutboundConnectionHandlerFactory("mock_och", och)
|
|
|
|
|
|
|
|
|
|
config := mocks.Config{
|
|
|
|
|
PortValue: port,
|
|
|
|
|
InboundConfigValue: &mocks.ConnectionConfig{
|
|
|
|
|
ProtocolValue: "socks",
|
|
|
|
|
SettingsValue: &json.SocksConfig{
|
|
|
|
|
AuthMethod: "password",
|
|
|
|
|
Accounts: []json.SocksAccount{
|
|
|
|
|
json.SocksAccount{
|
|
|
|
|
Username: "userx",
|
|
|
|
|
Password: "passy",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
OutboundConfigValue: &mocks.ConnectionConfig{
|
|
|
|
|
ProtocolValue: "mock_och",
|
|
|
|
|
SettingsValue: nil,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
point, err := core.NewPoint(&config)
|
|
|
|
|
assert.Error(err).IsNil()
|
|
|
|
|
|
|
|
|
|
err = point.Start()
|
|
|
|
|
assert.Error(err).IsNil()
|
|
|
|
|
|
|
|
|
|
socks5Client, err := proxy.SOCKS5("tcp", "127.0.0.1:38405", nil, proxy.Direct)
|
|
|
|
|
assert.Error(err).IsNil()
|
|
|
|
|
|
|
|
|
|
targetServer := "1.2.3.4:443"
|
|
|
|
|
_, err = socks5Client.Dial("tcp", targetServer)
|
|
|
|
|
assert.Error(err).IsNotNil()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestSocksUdpSend(t *testing.T) {
|
|
|
|
|
assert := unit.Assert(t)
|
|
|
|
|
port := uint16(12372)
|
|
|
|
|