MCPcopy
hub / github.com/AdguardTeam/dnsproxy / initDNSCryptServers

Method initDNSCryptServers

proxy/serverdnscrypt.go:16–47  ·  view source on GitHub ↗

initDNSCryptServers initializes the DNSCrypt servers.

(ctx context.Context)

Source from the content-addressed store, hash-verified

14
15// initDNSCryptServers initializes the DNSCrypt servers.
16func (p *Proxy) initDNSCryptServers(ctx context.Context) (err error) {
17 if len(p.DNSCryptUDPListenAddr) == 0 && len(p.DNSCryptTCPListenAddr) == 0 {
18 // Do nothing if DNSCrypt listen addresses are not specified.
19 return nil
20 }
21
22 if p.DNSCryptResolverCert == nil || p.DNSCryptProviderName == "" {
23 return errors.Error("invalid dnscrypt configuration: no certificate or provider name")
24 }
25
26 p.logger.InfoContext(ctx, "initializing dnscrypt", "provider", p.DNSCryptProviderName)
27
28 for _, addr := range p.DNSCryptUDPListenAddr {
29 s, sErr := p.newDNSCryptServer(ctx, netutil.NetAddrToAddrPort(addr), dnscrypt.ProtoUDP)
30 if sErr != nil {
31 return fmt.Errorf("listening to dnscrypt udp on addr %s: %w", addr, sErr)
32 }
33
34 p.dnsCryptServers = append(p.dnsCryptServers, s)
35 }
36
37 for _, addr := range p.DNSCryptTCPListenAddr {
38 s, sErr := p.newDNSCryptServer(ctx, netutil.NetAddrToAddrPort(addr), dnscrypt.ProtoTCP)
39 if sErr != nil {
40 return fmt.Errorf("listening to dnscrypt tcp on addr %s: %w", addr, sErr)
41 }
42
43 p.dnsCryptServers = append(p.dnsCryptServers, s)
44 }
45
46 return nil
47}
48
49// startDNSCryptServers starts the DNSCrypt servers.
50func (p *Proxy) startDNSCryptServers(ctx context.Context) (err error) {

Callers 1

StartMethod · 0.95

Calls 2

newDNSCryptServerMethod · 0.95
ErrorMethod · 0.45

Tested by

no test coverage detected