mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
Probetest/proxy: Set multiple comma-separated default STUN URLs
This adds the BlackBerry STUN server alongside Google's. Closes #40392.
This commit is contained in:
parent
1085d048b9
commit
9ff205dd7f
3 changed files with 14 additions and 10 deletions
|
@ -29,10 +29,14 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
readLimit = 100000 //Maximum number of bytes to be read from an HTTP request
|
||||
dataChannelOpenTimeout = 20 * time.Second //time after which we assume proxy data channel will not open
|
||||
dataChannelCloseTimeout = 5 * time.Second //how long to wait after the data channel has been open before closing the peer connection.
|
||||
defaultStunUrl = "stun:stun.l.google.com:19302" //default STUN URL
|
||||
// Maximum number of bytes to be read from an HTTP request
|
||||
readLimit = 100000
|
||||
// Time after which we assume proxy data channel will not open
|
||||
dataChannelOpenTimeout = 20 * time.Second
|
||||
// How long to wait after the data channel has been open before closing the peer connection.
|
||||
dataChannelCloseTimeout = 5 * time.Second
|
||||
// Default STUN URL
|
||||
defaultStunUrls = "stun:stun.l.google.com:19302,stun:stun.voip.blackberry.com:3478"
|
||||
)
|
||||
|
||||
type ProbeHandler struct {
|
||||
|
@ -60,7 +64,7 @@ func makePeerConnectionFromOffer(stunURL string, sdp *webrtc.SessionDescription,
|
|||
config := webrtc.Configuration{
|
||||
ICEServers: []webrtc.ICEServer{
|
||||
{
|
||||
URLs: []string{stunURL},
|
||||
URLs: strings.Split(stunURL, ","),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -234,7 +238,7 @@ func main() {
|
|||
flag.StringVar(&addr, "addr", ":8443", "address to listen on")
|
||||
flag.BoolVar(&disableTLS, "disable-tls", false, "don't use HTTPS")
|
||||
flag.BoolVar(&unsafeLogging, "unsafe-logging", false, "prevent logs from being scrubbed")
|
||||
flag.StringVar(&stunURL, "stun", defaultStunUrl, "STUN server to use for NAT traversal")
|
||||
flag.StringVar(&stunURL, "stun", defaultStunUrls, "STUN servers to use for NAT traversal (comma-separated)")
|
||||
flag.Parse()
|
||||
|
||||
var logOutput io.Writer = os.Stderr
|
||||
|
|
|
@ -60,7 +60,7 @@ const (
|
|||
DefaultNATProbeURL = "https://snowflake-broker.torproject.net:8443/probe"
|
||||
// This is rather a "DefaultDefaultRelayURL"
|
||||
DefaultRelayURL = "wss://snowflake.torproject.net/"
|
||||
DefaultSTUNURL = "stun:stun.l.google.com:19302"
|
||||
DefaultSTUNURL = "stun:stun.l.google.com:19302,stun:stun.voip.blackberry.com:3478"
|
||||
DefaultProxyType = "standalone"
|
||||
)
|
||||
|
||||
|
@ -123,7 +123,7 @@ type SnowflakeProxy struct {
|
|||
// Capacity is the maximum number of clients a Snowflake will serve.
|
||||
// Proxies with a capacity of 0 will accept an unlimited number of clients.
|
||||
Capacity uint
|
||||
// STUNURL is the URL of the STUN server the proxy will use
|
||||
// STUNURL is the URLs (comma-separated) of the STUN server the proxy will use
|
||||
STUNURL string
|
||||
// BrokerURL is the URL of the Snowflake broker
|
||||
BrokerURL string
|
||||
|
@ -757,7 +757,7 @@ func (sf *SnowflakeProxy) Start() error {
|
|||
config = webrtc.Configuration{
|
||||
ICEServers: []webrtc.ICEServer{
|
||||
{
|
||||
URLs: []string{sf.STUNURL},
|
||||
URLs: strings.Split(sf.STUNURL, ","),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ func main() {
|
|||
pollInterval := flag.Duration("poll-interval", sf.DefaultPollInterval,
|
||||
fmt.Sprint("how often to ask the broker for a new client. Keep in mind that asking for a client will not always result in getting one. Minumum value is ", minPollInterval, ". Valid time units are \"ms\", \"s\", \"m\", \"h\"."))
|
||||
capacity := flag.Uint("capacity", 0, "maximum concurrent clients (default is to accept an unlimited number of clients)")
|
||||
stunURL := flag.String("stun", sf.DefaultSTUNURL, "STUN server `URL` that this proxy will use will use to, among some other things, determine its public IP address")
|
||||
stunURL := flag.String("stun", sf.DefaultSTUNURL, "Comma-separated STUN server `URL`s that this proxy will use will use to, among some other things, determine its public IP address")
|
||||
logFilename := flag.String("log", "", "log `filename`. If not specified, logs will be output to stderr (console).")
|
||||
rawBrokerURL := flag.String("broker", sf.DefaultBrokerURL, "The `URL` of the broker server that the proxy will be using to find clients")
|
||||
unsafeLogging := flag.Bool("unsafe-logging", false, "keep IP addresses and other sensitive info in the logs")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue