@@ -26,35 +26,7 @@ func getDNSConfigCommand() *cobra.Command {
2626 }
2727 config := resp .Msg .Config
2828
29- w := new (tabwriter.Writer )
30- w .Init (os .Stdout , 8 , 8 , 1 , '\t' , 0 )
31- defer w .Flush ()
32-
33- fmt .Fprintf (w , "%s\t \t %v\n " , "MagicDNS" , config .MagicDns )
34- fmt .Fprintf (w , "%s\t \t %v\n " , "HTTPS Certs" , config .HttpsCerts )
35- fmt .Fprintf (w , "%s\t \t %v\n " , "Override Local DNS" , config .OverrideLocalDns )
36-
37- if config .MagicDns {
38- fmt .Fprintf (w , "MagicDNS\t %s\t %s\n " , config .MagicDnsSuffix , "100.100.100.100" )
39- }
40-
41- for k , r := range config .Routes {
42- for i , t := range r .Routes {
43- if i == 0 {
44- fmt .Fprintf (w , "SplitDNS\t %s\t %s\n " , k , t )
45- } else {
46- fmt .Fprintf (w , "%s\t %s\n " , "" , t )
47- }
48- }
49- }
50-
51- for i , t := range config .Nameservers {
52- if i == 0 {
53- fmt .Fprintf (w , "%s\t %s\t %s\n " , "Global" , "" , t )
54- } else {
55- fmt .Fprintf (w , "%s\t %s\t %s\n " , "" , "" , t )
56- }
57- }
29+ printDnsConfig (config )
5830
5931 return nil
6032 }
@@ -73,11 +45,13 @@ func setDNSConfigCommand() *cobra.Command {
7345 var magicDNS bool
7446 var httpsCerts bool
7547 var overrideLocalDNS bool
48+ var searchDomains []string
7649
7750 command .Flags ().StringSliceVarP (& nameservers , "nameserver" , "" , []string {}, "Machines on your network will use these nameservers to resolve DNS queries." )
7851 command .Flags ().BoolVarP (& magicDNS , "magic-dns" , "" , false , "Enable MagicDNS for the specified Tailnet" )
7952 command .Flags ().BoolVarP (& httpsCerts , "https-certs" , "" , false , "Enable HTTPS Certificates for the specified Tailnet" )
8053 command .Flags ().BoolVarP (& overrideLocalDNS , "override-local-dns" , "" , false , "When enabled, connected clients ignore local DNS settings and always use the nameservers specified for this Tailnet" )
54+ command .Flags ().StringSliceVarP (& searchDomains , "search-domain" , "" , []string {}, "Custom DNS search domains." )
8155
8256 command .RunE = func (cmd * cobra.Command , args []string ) error {
8357 var globalNameservers []string
@@ -105,6 +79,7 @@ func setDNSConfigCommand() *cobra.Command {
10579 Nameservers : globalNameservers ,
10680 Routes : routes ,
10781 HttpsCerts : httpsCerts ,
82+ SearchDomains : searchDomains ,
10883 },
10984 }
11085 resp , err := tc .Client ().SetDNSConfig (cmd .Context (), connect .NewRequest (& req ))
@@ -120,38 +95,50 @@ func setDNSConfigCommand() *cobra.Command {
12095 fmt .Println ()
12196 }
12297
123- w := new (tabwriter.Writer )
124- w .Init (os .Stdout , 8 , 8 , 1 , '\t' , 0 )
125- defer w .Flush ()
98+ printDnsConfig (config )
12699
127- fmt .Fprintf (w , "%s\t \t %v\n " , "MagicDNS" , config .MagicDns )
128- fmt .Fprintf (w , "%s\t \t %v\n " , "HTTPS Certs" , config .HttpsCerts )
129- fmt .Fprintf (w , "%s\t \t %v\n " , "Override Local DNS" , config .OverrideLocalDns )
100+ return nil
101+ }
130102
131- if config .MagicDns {
132- fmt .Fprintf (w , "MagicDNS\t %s\t %s\n " , config .MagicDnsSuffix , "100.100.100.100" )
133- }
103+ return command
104+ }
134105
135- for k , r := range config .Routes {
136- for i , t := range r .Routes {
137- if i == 0 {
138- fmt .Fprintf (w , "SplitDNS\t %s\t %s\n " , k , t )
139- } else {
140- fmt .Fprintf (w , "%s\t %s\n " , "" , t )
141- }
142- }
143- }
106+ func printDnsConfig (config * api.DNSConfig ) {
107+ w := new (tabwriter.Writer )
108+ w .Init (os .Stdout , 8 , 8 , 1 , '\t' , 0 )
109+ defer w .Flush ()
144110
145- for i , t := range config .Nameservers {
111+ fmt .Fprintf (w , "%s\t \t %v\n " , "MagicDNS" , config .MagicDns )
112+ fmt .Fprintf (w , "%s\t \t %v\n " , "HTTPS Certs" , config .HttpsCerts )
113+ fmt .Fprintf (w , "%s\t \t %v\n " , "Override Local DNS" , config .OverrideLocalDns )
114+
115+ if config .MagicDns {
116+ fmt .Fprintf (w , "MagicDNS\t %s\t %s\n " , config .MagicDnsSuffix , "100.100.100.100" )
117+ }
118+
119+ for k , r := range config .Routes {
120+ for i , t := range r .Routes {
146121 if i == 0 {
147- fmt .Fprintf (w , "%s \t %s\t %s\n " , "Global" , "" , t )
122+ fmt .Fprintf (w , "SplitDNS \t %s\t %s\n " , k , t )
148123 } else {
149- fmt .Fprintf (w , "%s\t %s\t %s \n " , " " , "" , t )
124+ fmt .Fprintf (w , "%s\t %s\n " , "" , t )
150125 }
151126 }
127+ }
152128
153- return nil
129+ for i , t := range config .Nameservers {
130+ if i == 0 {
131+ fmt .Fprintf (w , "%s\t %s\t %s\n " , "Global" , "" , t )
132+ } else {
133+ fmt .Fprintf (w , "%s\t %s\t %s\n " , "" , "" , t )
134+ }
154135 }
155136
156- return command
137+ for i , t := range config .SearchDomains {
138+ if i == 0 {
139+ fmt .Fprintf (w , "%s\t %s\t %s\n " , "Search Domains" , t , "" )
140+ } else {
141+ fmt .Fprintf (w , "%s\t %s\t %s\n " , "" , t , "" )
142+ }
143+ }
157144}
0 commit comments