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 package main
import ( import (
"errors"
"flag" "flag"
"fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"log" "log"
@ -30,7 +32,27 @@ func main() {
SummaryInterval := flag.Duration("summary-interval", time.Hour, SummaryInterval := flag.Duration("summary-interval", time.Hour,
"the time interval to output summary, 0s disables summaries. Valid time units are \"s\", \"m\", \"h\". ") "the time interval to output summary, 0s disables summaries. Valid time units are \"s\", \"m\", \"h\". ")
verboseLogging := flag.Bool("verbose", false, "increase log verbosity") 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() flag.Parse()
@ -42,6 +64,8 @@ func main() {
BrokerURL: *rawBrokerURL, BrokerURL: *rawBrokerURL,
KeepLocalAddresses: *keepLocalAddresses, KeepLocalAddresses: *keepLocalAddresses,
RelayURL: *relayURL, RelayURL: *relayURL,
EphemeralMinPort: ephemeralPortsRange[0],
EphemeralMaxPort: ephemeralPortsRange[1],
NATTypeMeasurementInterval: *NATTypeMeasurementInterval, NATTypeMeasurementInterval: *NATTypeMeasurementInterval,
EventDispatcher: eventLogger, EventDispatcher: eventLogger,
@ -50,23 +74,6 @@ func main() {
AllowNonTLSRelay: *allowNonTLSRelay, 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 logOutput io.Writer = os.Stderr
var eventlogOutput io.Writer = os.Stderr var eventlogOutput io.Writer = os.Stderr
log.SetFlags(log.LstdFlags | log.LUTC) log.SetFlags(log.LstdFlags | log.LUTC)