Hunter0x7c7
2022-08-11 a82f9cb69f63aaeba40c024960deda7d75b9fece
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
package v4
 
import (
    "github.com/golang/protobuf/proto"
 
    "github.com/v2fly/v2ray-core/v5/common/net"
    "github.com/v2fly/v2ray-core/v5/infra/conf/cfgcommon"
    "github.com/v2fly/v2ray-core/v5/proxy/dns"
)
 
type DNSOutboundConfig struct {
    Network   cfgcommon.Network  `json:"network"`
    Address   *cfgcommon.Address `json:"address"`
    Port      uint16             `json:"port"`
    UserLevel uint32             `json:"userLevel"`
}
 
func (c *DNSOutboundConfig) Build() (proto.Message, error) {
    config := &dns.Config{
        Server: &net.Endpoint{
            Network: c.Network.Build(),
            Port:    uint32(c.Port),
        },
        UserLevel: c.UserLevel,
    }
    if c.Address != nil {
        config.Server.Address = c.Address.Build()
    }
    return config, nil
}