Change how ephemeral-ports-range CLI flag is handled

This commit is contained in:
KokaKiwi 2022-09-30 17:50:21 +02:00 committed by KokaKiwi
parent 47f9392645
commit 068af08703
No known key found for this signature in database
GPG key ID: 09A5A2688F13FAC1

View file

@ -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)