Hunter0x7c7
2022-08-11 b8230139fb40edea387617b6accd8371e37eda58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package simplified
 
import (
    "context"
 
    "github.com/v2fly/v2ray-core/v5/common"
    "github.com/v2fly/v2ray-core/v5/common/protocol"
    "github.com/v2fly/v2ray-core/v5/common/serial"
    "github.com/v2fly/v2ray-core/v5/proxy/trojan"
)
 
func init() {
    common.Must(common.RegisterConfig((*ServerConfig)(nil), func(ctx context.Context, config interface{}) (interface{}, error) {
        simplifiedServer := config.(*ServerConfig)
        fullServer := &trojan.ServerConfig{
            Users: func() (users []*protocol.User) {
                for _, v := range simplifiedServer.Users {
                    account := &trojan.Account{Password: v}
                    users = append(users, &protocol.User{
                        Account: serial.ToTypedMessage(account),
                    })
                }
                return
            }(),
        }
        return common.CreateObject(ctx, fullServer)
    }))
 
    common.Must(common.RegisterConfig((*ClientConfig)(nil), func(ctx context.Context, config interface{}) (interface{}, error) {
        simplifiedClient := config.(*ClientConfig)
        fullClient := &trojan.ClientConfig{
            Server: []*protocol.ServerEndpoint{
                {
                    Address: simplifiedClient.Address,
                    Port:    simplifiedClient.Port,
                    User: []*protocol.User{
                        {
                            Account: serial.ToTypedMessage(&trojan.Account{Password: simplifiedClient.Password}),
                        },
                    },
                },
            },
        }
        return common.CreateObject(ctx, fullClient)
    }))
}