@@ -193,8 +193,17 @@ func addSingleTunnel(ctx *actions.Context, cfg *config.Config, transport_, backe
193193 return actions .NewError (actions .TunnelAdd , "key setup failed" , err )
194194 }
195195
196+ mtuStr , err := prompt .String ("MTU" , fmt .Sprintf ("%d" , config .DefaultMTU ))
197+ if err != nil {
198+ return err
199+ }
200+ mtu := config .DefaultMTU
201+ if n , e := fmt .Sscanf (mtuStr , "%d" , & mtu ); n != 1 || e != nil {
202+ mtu = config .DefaultMTU
203+ }
204+
196205 tunnel .DNSTT = & config.DNSTTConfig {
197- MTU : config . DefaultMTU ,
206+ MTU : mtu ,
198207 PrivateKey : privKeyPath ,
199208 PublicKey : pubKey ,
200209 }
@@ -254,7 +263,11 @@ func addSingleTunnel(ctx *actions.Context, cfg *config.Config, transport_, backe
254263 if recordType == "" {
255264 rtOpts := make ([]actions.SelectOption , len (config .ValidVayDNSRecordTypes ))
256265 for i , rt := range config .ValidVayDNSRecordTypes {
257- rtOpts [i ] = actions.SelectOption {Value : rt , Label : rt }
266+ label := rt
267+ if i == 0 {
268+ label = rt + " (default)"
269+ }
270+ rtOpts [i ] = actions.SelectOption {Value : rt , Label : label }
258271 }
259272 var err error
260273 recordType , err = prompt .Select ("DNS record type" , rtOpts )
@@ -263,29 +276,75 @@ func addSingleTunnel(ctx *actions.Context, cfg *config.Config, transport_, backe
263276 }
264277 }
265278
279+ mtuStr , err := prompt .String ("MTU" , fmt .Sprintf ("%d" , config .DefaultMTU ))
280+ if err != nil {
281+ return err
282+ }
283+ mtu := config .DefaultMTU
284+ if n , e := fmt .Sscanf (mtuStr , "%d" , & mtu ); n != 1 || e != nil {
285+ mtu = config .DefaultMTU
286+ }
287+
266288 vayCfg := & config.VayDNSConfig {
267- MTU : config . DefaultMTU ,
289+ MTU : mtu ,
268290 PrivateKey : privKeyPath ,
269291 PublicKey : pubKey ,
270292 RecordType : recordType ,
271293 }
294+
272295 if v := ctx .GetArg ("idle-timeout" ); v != "" {
273296 vayCfg .IdleTimeout = v
297+ } else {
298+ v , err := prompt .String ("Idle timeout" , vayCfg .ResolvedIdleTimeout ())
299+ if err != nil {
300+ return err
301+ }
302+ if v != "" {
303+ vayCfg .IdleTimeout = v
304+ }
274305 }
306+
275307 if v := ctx .GetArg ("keep-alive" ); v != "" {
276308 vayCfg .KeepAlive = v
309+ } else {
310+ v , err := prompt .String ("Keep alive" , vayCfg .ResolvedKeepAlive ())
311+ if err != nil {
312+ return err
313+ }
314+ if v != "" {
315+ vayCfg .KeepAlive = v
316+ }
277317 }
318+
278319 if v := ctx .GetArg ("clientid-size" ); v != "" {
279320 var n int
280321 if _ , e := fmt .Sscanf (v , "%d" , & n ); e == nil {
281322 vayCfg .ClientIDSize = n
282323 }
324+ } else {
325+ v , err := prompt .String ("Client ID size" , fmt .Sprintf ("%d" , vayCfg .ResolvedClientIDSize ()))
326+ if err != nil {
327+ return err
328+ }
329+ if n , e := fmt .Sscanf (v , "%d" , & vayCfg .ClientIDSize ); n != 1 || e != nil {
330+ vayCfg .ClientIDSize = 0
331+ }
283332 }
333+
284334 if v := ctx .GetArg ("queue-size" ); v != "" {
285335 var n int
286336 if _ , e := fmt .Sscanf (v , "%d" , & n ); e == nil {
287337 vayCfg .QueueSize = n
288338 }
339+ } else {
340+ defQS := 512
341+ v , err := prompt .String ("Queue size" , fmt .Sprintf ("%d" , defQS ))
342+ if err != nil {
343+ return err
344+ }
345+ if n , e := fmt .Sscanf (v , "%d" , & vayCfg .QueueSize ); n != 1 || e != nil {
346+ vayCfg .QueueSize = 0
347+ }
289348 }
290349 tunnel .VayDNS = vayCfg
291350 out .Success (fmt .Sprintf ("Public key: %s" , pubKey ))
@@ -307,10 +366,19 @@ func addSingleTunnel(ctx *actions.Context, cfg *config.Config, transport_, backe
307366 return err
308367 }
309368 }
369+ portStr , err := prompt .String ("Port" , "443" )
370+ if err != nil {
371+ return err
372+ }
373+ naivePort := 443
374+ if n , e := fmt .Sscanf (portStr , "%d" , & naivePort ); n != 1 || e != nil {
375+ naivePort = 443
376+ }
377+
310378 tunnel .Naive = & config.NaiveConfig {
311379 Email : email ,
312380 DecoyURL : decoyURL ,
313- Port : 443 ,
381+ Port : naivePort ,
314382 }
315383
316384 }
0 commit comments