Skip to content

Commit d02bc14

Browse files
authored
Merge pull request #2 from fosrl/dev
0.1.2
2 parents 520926d + e347884 commit d02bc14

File tree

3 files changed

+30
-24
lines changed

3 files changed

+30
-24
lines changed

cmd/up/client.go

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const (
3434
defaultPingInterval = "5s"
3535
defaultPingTimeout = "5s"
3636
defaultHolepunch = true
37-
defaultVersion = "Pangolin CLI"
37+
defaultAgent = "Pangolin CLI"
3838
defaultOverrideDNS = true
3939
)
4040

@@ -200,8 +200,8 @@ var ClientCmd = &cobra.Command{
200200
if cmd.Flags().Changed("mtu") {
201201
cmdArgs = append(cmdArgs, "--mtu", fmt.Sprintf("%d", flagMTU))
202202
}
203-
if cmd.Flags().Changed("dns") {
204-
cmdArgs = append(cmdArgs, "--dns", flagDNS)
203+
if cmd.Flags().Changed("netstack-dns") {
204+
cmdArgs = append(cmdArgs, "--netstack-dns", flagDNS)
205205
}
206206
if cmd.Flags().Changed("interface-name") {
207207
cmdArgs = append(cmdArgs, "--interface-name", flagInterfaceName)
@@ -236,11 +236,8 @@ var ClientCmd = &cobra.Command{
236236
}
237237
}
238238
if cmd.Flags().Changed("upstream-dns") {
239-
// For string slice flags, we need to pass each value separately
240-
// Cobra's StringSliceVar supports multiple --upstream-dns flags or comma-separated values
241-
for _, dns := range flagUpstreamDNS {
242-
cmdArgs = append(cmdArgs, "--upstream-dns", dns)
243-
}
239+
// Comma sep
240+
cmdArgs = append(cmdArgs, "--upstream-dns", strings.Join(flagUpstreamDNS, ","))
244241
}
245242

246243
// Add positional args if any
@@ -398,7 +395,7 @@ var ClientCmd = &cobra.Command{
398395
}
399396

400397
mtu := getInt(flagMTU, "mtu", "mtu", defaultMTU)
401-
dns := getString(flagDNS, "dns", "dns", defaultDNS)
398+
dns := getString(flagDNS, "netstack-dns", "netstack-dns", defaultDNS)
402399
interfaceName := getString(flagInterfaceName, "interface-name", "interface_name", defaultInterfaceName)
403400
logLevel := getString(flagLogLevel, "log-level", "log_level", defaultLogLevel)
404401
enableAPI := defaultEnableAPI
@@ -418,19 +415,19 @@ var ClientCmd = &cobra.Command{
418415
overrideDNS := getBool(flagOverrideDNS, "override-dns", "override_dns", defaultOverrideDNS)
419416
upstreamDNS := getStringSlice(flagUpstreamDNS, "upstream-dns", "upstream_dns", []string{defaultDNS})
420417

421-
// Process UpstreamDNS: append :53 to each DNS server if not already present
422418
processedUpstreamDNS := make([]string, 0, len(upstreamDNS))
423-
for _, dns := range upstreamDNS {
424-
dns = strings.TrimSpace(dns)
425-
if dns == "" {
419+
for _, entry := range upstreamDNS {
420+
entry = strings.TrimSpace(entry)
421+
if entry == "" {
426422
continue
427423
}
428-
// Append :53 if not already present
429-
if !strings.Contains(dns, ":") {
430-
dns = dns + ":53"
424+
425+
if !strings.Contains(entry, ":") {
426+
entry = entry + ":53"
431427
}
432-
processedUpstreamDNS = append(processedUpstreamDNS, dns)
428+
processedUpstreamDNS = append(processedUpstreamDNS, entry)
433429
}
430+
434431
// If no DNS servers were provided, use default
435432
if len(processedUpstreamDNS) == 0 {
436433
processedUpstreamDNS = []string{defaultDNS + ":53"}
@@ -478,7 +475,7 @@ var ClientCmd = &cobra.Command{
478475
SocketPath: socketPath,
479476
HTTPAddr: httpAddr,
480477
Version: version,
481-
Agent: defaultVersion,
478+
Agent: defaultAgent,
482479
OnTerminated: func() {
483480
utils.Info("Client process terminated")
484481
stop()
@@ -544,16 +541,16 @@ func addClientFlags(cmd *cobra.Command) {
544541
cmd.Flags().StringVar(&flagOrgID, "org", "", "Organization ID (optional, will use selected org if not provided)")
545542
cmd.Flags().StringVar(&flagEndpoint, "endpoint", "", "Client endpoint (required if not logged in)")
546543
cmd.Flags().IntVar(&flagMTU, "mtu", 0, fmt.Sprintf("MTU (default: %d)", defaultMTU))
547-
cmd.Flags().StringVar(&flagDNS, "dns", "", fmt.Sprintf("DNS server (default: %s)", defaultDNS))
544+
cmd.Flags().StringVar(&flagDNS, "netstack-dns", "", fmt.Sprintf("DNS server to use for Netstack (default: %s)", defaultDNS))
548545
cmd.Flags().StringVar(&flagInterfaceName, "interface-name", "", fmt.Sprintf("Interface name (default: %s)", defaultInterfaceName))
549546
cmd.Flags().StringVar(&flagLogLevel, "log-level", "", fmt.Sprintf("Log level (default: %s)", defaultLogLevel))
550-
cmd.Flags().StringVar(&flagHTTPAddr, "http-addr", "", "HTTP address")
547+
cmd.Flags().StringVar(&flagHTTPAddr, "http-addr", "", "HTTP address for API server (default: disabled)")
551548
cmd.Flags().StringVar(&flagPingInterval, "ping-interval", "", fmt.Sprintf("Ping interval (default: %s)", defaultPingInterval))
552549
cmd.Flags().StringVar(&flagPingTimeout, "ping-timeout", "", fmt.Sprintf("Ping timeout (default: %s)", defaultPingTimeout))
553550
cmd.Flags().BoolVar(&flagHolepunch, "holepunch", false, fmt.Sprintf("Enable holepunching (default: %v)", defaultHolepunch))
554551
cmd.Flags().StringVar(&flagTlsClientCert, "tls-client-cert", "", "TLS client certificate path")
555552
cmd.Flags().BoolVar(&flagOverrideDNS, "override-dns", defaultOverrideDNS, fmt.Sprintf("Override system DNS for resolving internal resource alias (default: %v)", defaultOverrideDNS))
556-
cmd.Flags().StringSliceVar(&flagUpstreamDNS, "upstream-dns", nil, fmt.Sprintf("List of DNS servers to use for external DNS resolution if overriding system DNS (default: %s)", defaultDNS))
553+
cmd.Flags().StringSliceVar(&flagUpstreamDNS, "upstream-dns", nil, fmt.Sprintf("Comma separated list of DNS servers to use for external DNS resolution if overriding system DNS (default: %s)", defaultDNS))
557554
cmd.Flags().BoolVar(&flagAttached, "attach", false, "Run in attached mode (foreground, default is detached)")
558555
cmd.Flags().BoolVar(&flagSilent, "silent", false, "Disable TUI and run silently (only applies to detached mode)")
559556
}
@@ -588,7 +585,7 @@ func setupLogFile(logPath string) error {
588585
// Set the logger output
589586
logger.GetLogger().SetOutput(file)
590587

591-
log.Printf("Logging to file: %s", logPath)
588+
// log.Printf("Logging to file: %s", logPath)
592589
return nil
593590
}
594591

cmd/up/up.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package up
22

33
import (
4+
"strings"
5+
46
"github.com/spf13/cobra"
57
"github.com/spf13/pflag"
68
)
@@ -14,6 +16,13 @@ var UpCmd = &cobra.Command{
1416
// This makes "pangolin up" equivalent to "pangolin up client"
1517
cmd.Flags().VisitAll(func(flag *pflag.Flag) {
1618
if cmd.Flags().Changed(flag.Name) {
19+
// Ensure stringSlice flags are passed without the bracketed representation
20+
if flag.Value.Type() == "stringSlice" {
21+
if vals, err := cmd.Flags().GetStringSlice(flag.Name); err == nil {
22+
ClientCmd.Flags().Set(flag.Name, strings.Join(vals, ","))
23+
return
24+
}
25+
}
1726
ClientCmd.Flags().Set(flag.Name, flag.Value.String())
1827
}
1928
})

internal/api/types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,14 +185,14 @@ type OrgPolicies struct {
185185
type MaxSessionLength struct {
186186
Compliant bool `json:"compliant"`
187187
MaxSessionLengthHours int `json:"maxSessionLengthHours"`
188-
SessionAgeHours int `json:"sessionAgeHours"`
188+
SessionAgeHours float64 `json:"sessionAgeHours"`
189189
}
190190

191191
// PasswordAge represents password age policy
192192
type PasswordAge struct {
193193
Compliant bool `json:"compliant"`
194194
MaxPasswordAgeDays int `json:"maxPasswordAgeDays"`
195-
PasswordAgeDays int `json:"passwordAgeDays"`
195+
PasswordAgeDays float64 `json:"passwordAgeDays"`
196196
}
197197

198198
// GetClientResponse represents the response for getting a client

0 commit comments

Comments
 (0)