@@ -10,6 +10,7 @@ import (
1010 "runtime"
1111 "runtime/pprof"
1212 "strconv"
13+ "strings"
1314 "syscall"
1415 "time"
1516
@@ -24,7 +25,7 @@ import (
2425
2526func main () {
2627 var cpuprofile , memprofile , mutexprofile , httpAddr string
27- var udp , udpRange string
28+ var udpRange string
2829
2930 flag .StringVar (& httpAddr , "http" , ":8443" , "web server `address`" )
3031 flag .StringVar (& webserver .StaticRoot , "static" , "./static/" ,
@@ -43,38 +44,37 @@ func main() {
4344 "store memory profile in `file`" )
4445 flag .StringVar (& mutexprofile , "mutexprofile" , "" ,
4546 "store mutex profile in `file`" )
46- flag .StringVar (& udp , "udp" , "" , "UDP port" )
47- flag . StringVar ( & udpRange , "udp-range" , "" , " UDP port ` range` " )
47+ flag .StringVar (& udpRange , "udp-range " , "" ,
48+ " UDP ` port` (multiplexing) or port1-port2 ( range) " )
4849 flag .BoolVar (& group .UseMDNS , "mdns" , false , "gather mDNS addresses" )
4950 flag .BoolVar (& ice .ICERelayOnly , "relay-only" , false ,
5051 "require use of TURN relays for all media traffic" )
5152 flag .StringVar (& turnserver .Address , "turn" , "auto" ,
5253 "built-in TURN server `address` (\" \" to disable)" )
5354 flag .Parse ()
5455
55- if udp != "" {
56- if udpRange != "" {
57- log .Fatalf ("Cannot specify both -udp and -udp-range" )
58- }
59- port , err := strconv .Atoi (udp )
60- if err != nil {
61- log .Fatalf ("UDP: %v" , err )
62- }
63- err = group .SetUDPMux (port )
64- if err != nil {
65- log .Fatalf ("UDP: %v" , err )
66- }
67- } else if udpRange != "" {
68- var min , max uint16
69- n , err := fmt .Sscanf (udpRange , "%v-%v" , & min , & max )
70- if err != nil {
71- log .Fatalf ("UDP range: %v" , err )
72- }
73- if n != 2 || min <= 0 || max <= 0 || min > max {
74- log .Fatalf ("UDP range: bad range" )
56+ if udpRange != "" {
57+ if strings .ContainsRune (udpRange , '-' ) {
58+ var min , max uint16
59+ n , err := fmt .Sscanf (udpRange , "%v-%v" , & min , & max )
60+ if err != nil || n != 2 {
61+ log .Fatalf ("UDP range: %v" , err )
62+ }
63+ if n != 2 || min <= 0 || max <= 0 || min > max {
64+ log .Fatalf ("UDP range: bad range" )
65+ }
66+ group .UDPMin = min
67+ group .UDPMax = max
68+ } else {
69+ port , err := strconv .Atoi (udpRange )
70+ if err != nil {
71+ log .Fatalf ("UDP: %v" , err )
72+ }
73+ err = group .SetUDPMux (port )
74+ if err != nil {
75+ log .Fatalf ("UDP: %v" , err )
76+ }
7577 }
76- group .UDPMin = min
77- group .UDPMax = max
7878 }
7979
8080 if cpuprofile != "" {
0 commit comments