1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-11 02:10:44 +00:00
v2fly/proxy/shadowsocks/simplified/config.go
2021-09-07 13:50:47 +01:00

51 lines
1.5 KiB
Go

package simplified
import (
"context"
"github.com/v2fly/v2ray-core/v4/common"
"github.com/v2fly/v2ray-core/v4/common/net"
"github.com/v2fly/v2ray-core/v4/common/protocol"
"github.com/v2fly/v2ray-core/v4/common/serial"
"github.com/v2fly/v2ray-core/v4/proxy/shadowsocks"
)
func init() {
common.Must(common.RegisterConfig((*ServerConfig)(nil), func(ctx context.Context, config interface{}) (interface{}, error) {
simplifiedServer := config.(*ServerConfig)
fullServer := &shadowsocks.ServerConfig{
User: &protocol.User{
Account: serial.ToTypedMessage(&shadowsocks.Account{
Password: simplifiedServer.Password,
CipherType: shadowsocks.CipherFromString(simplifiedServer.Method),
}),
},
Network: net.ParseNetworkList(simplifiedServer.Network),
}
return common.CreateObject(ctx, fullServer)
}))
common.Must(common.RegisterConfig((*ClientConfig)(nil), func(ctx context.Context, config interface{}) (interface{}, error) {
simplifiedClient := config.(*ClientConfig)
fullClient := &shadowsocks.ClientConfig{
Server: []*protocol.ServerEndpoint{
{
Address: simplifiedClient.Address,
Port: simplifiedClient.Port,
User: []*protocol.User{
{
Account: serial.ToTypedMessage(&shadowsocks.Account{
Password: simplifiedClient.Password,
CipherType: shadowsocks.CipherFromString(simplifiedClient.Method),
}),
},
},
},
},
}
return common.CreateObject(ctx, fullClient)
}))
}