
This is an automated email from the git hooks/post-receive script. meskio pushed a commit to branch main in repository pluggable-transports/snowflake. commit 068af0870370b5c1ae8690068088b2d8ed11bfa5 Author: KokaKiwi <kokakiwi+git@kokakiwi.net> AuthorDate: Fri Sep 30 17:50:21 2022 +0200 Change how ephemeral-ports-range CLI flag is handled --- proxy/main.go | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/proxy/main.go b/proxy/main.go index e187559..a6e6a19 100644 --- a/proxy/main.go +++ b/proxy/main.go @@ -1,7 +1,9 @@ package main import ( + "errors" "flag" + "fmt" "io" "io/ioutil" "log" @@ -30,7 +32,27 @@ func main() { SummaryInterval := flag.Duration("summary-interval", time.Hour, "the time interval to output summary, 0s disables summaries. Valid time units are \"s\", \"m\", \"h\". ") verboseLogging := flag.Bool("verbose", false, "increase log verbosity") - ephemeralPortsRange := flag.String("ephemeral-ports-range", "", "UDP ephemeral ports range") + var ephemeralPortsRange []uint16 = []uint16{0, 0} + flag.Func("ephemeral-ports-range", "ICE UDP ephemeral ports range (format: \"[min]:[max]\")", func(s string) error { + ephemeralPortsRangeParts := strings.Split(s, ":") + if len(ephemeralPortsRangeParts) == 2 { + ephemeralMinPort, err := strconv.ParseUint(ephemeralPortsRangeParts[0], 10, 16) + if err != nil { + return err + } + + ephemeralMaxPort, err := strconv.ParseUint(ephemeralPortsRangeParts[1], 10, 16) + if err != nil { + return err + } + + ephemeralPortsRange = []uint16{uint16(ephemeralMinPort), uint16(ephemeralMaxPort)} + + return nil + } + + return errors.New(fmt.Sprintf("Bad range port format: %v", s)) + }) flag.Parse() @@ -42,6 +64,8 @@ func main() { BrokerURL: *rawBrokerURL, KeepLocalAddresses: *keepLocalAddresses, RelayURL: *relayURL, + EphemeralMinPort: ephemeralPortsRange[0], + EphemeralMaxPort: ephemeralPortsRange[1], NATTypeMeasurementInterval: *NATTypeMeasurementInterval, EventDispatcher: eventLogger, @@ -50,23 +74,6 @@ func main() { AllowNonTLSRelay: *allowNonTLSRelay, } - ephemeralPortsRangeParts := strings.Split(*ephemeralPortsRange, ":") - if len(ephemeralPortsRangeParts) == 2 { - ephemeralMinPort, err := strconv.ParseUint(ephemeralPortsRangeParts[0], 10, 16) - if err == nil { - proxy.EphemeralMinPort = uint16(ephemeralMinPort) - } else { - log.Printf("Invalid port (%v): %v", ephemeralPortsRangeParts[0], err) - } - - ephemeralMaxPort, err := strconv.ParseUint(ephemeralPortsRangeParts[1], 10, 16) - if err == nil { - proxy.EphemeralMaxPort = uint16(ephemeralMaxPort) - } else { - log.Printf("Invalid port (%v): %v", ephemeralPortsRangeParts[1], err) - } - } - var logOutput io.Writer = os.Stderr var eventlogOutput io.Writer = os.Stderr log.SetFlags(log.LstdFlags | log.LUTC) -- To stop receiving notification emails like this one, please contact the administrator of this repository.