cloudflare/cloudflared

Public

mirrored from https://github.com/cloudflare/cloudflaredAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
2019.11.2

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

cmd/cloudflared/tunnel/server.go

33lines · modecode

1package tunnel
2
3import (
4 "github.com/cloudflare/cloudflared/tunneldns"
5
6 "gopkg.in/urfave/cli.v2"
7
8 "github.com/pkg/errors"
9)
10
11func runDNSProxyServer(c *cli.Context, dnsReadySignal, shutdownC chan struct{}) error {
12 port := c.Int("proxy-dns-port")
13 if port <= 0 || port > 65535 {
14 logger.Errorf("The 'proxy-dns-port' must be a valid port number in <1, 65535> range.")
15 return errors.New("The 'proxy-dns-port' must be a valid port number in <1, 65535> range.")
16 }
17 listener, err := tunneldns.CreateListener(c.String("proxy-dns-address"), uint16(port), c.StringSlice("proxy-dns-upstream"))
18 if err != nil {
19 close(dnsReadySignal)
20 listener.Stop()
21 logger.WithError(err).Error("Cannot create the DNS over HTTPS proxy server")
22 return errors.Wrap(err, "Cannot create the DNS over HTTPS proxy server")
23 }
24
25 err = listener.Start(dnsReadySignal)
26 if err != nil {
27 logger.WithError(err).Error("Cannot start the DNS over HTTPS proxy server")
28 return errors.Wrap(err, "Cannot start the DNS over HTTPS proxy server")
29 }
30 <-shutdownC
31 listener.Stop()
32 return nil
33}
34