diff options
| author | Nick Khyl <nickk@tailscale.com> | 2024-12-05 13:16:48 -0600 |
|---|---|---|
| committer | Nick Khyl <nickk@tailscale.com> | 2024-12-05 13:16:48 -0600 |
| commit | 0267fe83b200f1702a2fa0a395442c02a053fadb (patch) | |
| tree | 63654c55225eeb834de59a5a0bc8d19033c6145b /types/flagtype/flagtype.go | |
| parent | 87546a5edf6b6503a87eeb2d666baba57398a066 (diff) | |
| download | tailscale-1.78.0.tar.xz tailscale-1.78.0.zip | |
VERSION.txt: this is v1.78.0v1.78.0
Signed-off-by: Nick Khyl <nickk@tailscale.com>
Diffstat (limited to 'types/flagtype/flagtype.go')
| -rw-r--r-- | types/flagtype/flagtype.go | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/types/flagtype/flagtype.go b/types/flagtype/flagtype.go index be160dee8..c76b16353 100644 --- a/types/flagtype/flagtype.go +++ b/types/flagtype/flagtype.go @@ -1,45 +1,45 @@ -// Copyright (c) Tailscale Inc & AUTHORS -// SPDX-License-Identifier: BSD-3-Clause - -// Package flagtype defines flag.Value types. -package flagtype - -import ( - "errors" - "flag" - "fmt" - "math" - "strconv" - "strings" -) - -type portValue struct{ n *uint16 } - -func PortValue(dst *uint16, defaultPort uint16) flag.Value { - *dst = defaultPort - return portValue{dst} -} - -func (p portValue) String() string { - if p.n == nil { - return "" - } - return fmt.Sprint(*p.n) -} -func (p portValue) Set(v string) error { - if v == "" { - return errors.New("can't be the empty string") - } - if strings.Contains(v, ":") { - return errors.New("expecting just a port number, without a colon") - } - n, err := strconv.ParseUint(v, 10, 64) // use 64 instead of 16 to return nicer error message - if err != nil { - return fmt.Errorf("not a valid number") - } - if n > math.MaxUint16 { - return errors.New("out of range for port number") - } - *p.n = uint16(n) - return nil -} +// Copyright (c) Tailscale Inc & AUTHORS
+// SPDX-License-Identifier: BSD-3-Clause
+
+// Package flagtype defines flag.Value types.
+package flagtype
+
+import (
+ "errors"
+ "flag"
+ "fmt"
+ "math"
+ "strconv"
+ "strings"
+)
+
+type portValue struct{ n *uint16 }
+
+func PortValue(dst *uint16, defaultPort uint16) flag.Value {
+ *dst = defaultPort
+ return portValue{dst}
+}
+
+func (p portValue) String() string {
+ if p.n == nil {
+ return ""
+ }
+ return fmt.Sprint(*p.n)
+}
+func (p portValue) Set(v string) error {
+ if v == "" {
+ return errors.New("can't be the empty string")
+ }
+ if strings.Contains(v, ":") {
+ return errors.New("expecting just a port number, without a colon")
+ }
+ n, err := strconv.ParseUint(v, 10, 64) // use 64 instead of 16 to return nicer error message
+ if err != nil {
+ return fmt.Errorf("not a valid number")
+ }
+ if n > math.MaxUint16 {
+ return errors.New("out of range for port number")
+ }
+ *p.n = uint16(n)
+ return nil
+}
|
