mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 11:11:30 -04:00
Modify handling of misconfigurations and defaults
This commit is contained in:
parent
0e8d41ba4b
commit
3caa83d84d
2 changed files with 27 additions and 17 deletions
|
@ -15,7 +15,8 @@ You may then start and stop the proxy. Stopping the proxy will close existing co
|
|||
the proxy will not poll for more clients.
|
||||
|
||||
go func() {
|
||||
proxy.Start()
|
||||
err := proxy.Start()
|
||||
// handle error
|
||||
}
|
||||
|
||||
// ...
|
||||
|
@ -46,16 +47,12 @@ import (
|
|||
"github.com/pion/webrtc/v3"
|
||||
)
|
||||
|
||||
// DefaultBrokerURL is the snowflake broker run at https://snowflake-broker.torproject.net
|
||||
const DefaultBrokerURL = "https://snowflake-broker.torproject.net/"
|
||||
|
||||
// DefaultProbeURL is run at https://snowflake-broker.torproject.net:8443/probe
|
||||
const DefaultProbeURL = "https://snowflake-broker.torproject.net:8443/probe"
|
||||
|
||||
// DefaultRelayURL is run at wss://snowflake.torproject.net
|
||||
const DefaultRelayURL = "wss://snowflake.bamsoftware.com/"
|
||||
|
||||
// DefaultSTUNURL is run at stun:stun.stunprotocol.org:3478
|
||||
const DefaultSTUNURL = "stun:stun.stunprotocol.org:3478"
|
||||
const pollInterval = 5 * time.Second
|
||||
|
||||
|
@ -486,27 +483,35 @@ func (sf *SnowflakeProxy) runSession(sid string) {
|
|||
|
||||
// Start configures and starts a Snowflake, fully formed and special. Configuration
|
||||
// values that are unset will default to their corresponding default values.
|
||||
func (sf *SnowflakeProxy) Start() {
|
||||
|
||||
sf.shutdown = make(chan struct{})
|
||||
|
||||
log.SetFlags(log.LstdFlags | log.LUTC)
|
||||
func (sf *SnowflakeProxy) Start() error {
|
||||
var err error
|
||||
|
||||
log.Println("starting")
|
||||
sf.shutdown = make(chan struct{})
|
||||
|
||||
// blank configurations revert to default
|
||||
if sf.BrokerURL == "" {
|
||||
sf.BrokerURL = DefaultBrokerURL
|
||||
}
|
||||
if sf.RelayURL == "" {
|
||||
sf.RelayURL = DefaultRelayURL
|
||||
}
|
||||
if sf.STUNURL == "" {
|
||||
sf.STUNURL = DefaultSTUNURL
|
||||
}
|
||||
|
||||
var err error
|
||||
broker, err = newSignalingServer(sf.BrokerURL, sf.KeepLocalAddresses)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return fmt.Errorf("error configuring broker: %s", err)
|
||||
}
|
||||
|
||||
_, err = url.Parse(sf.STUNURL)
|
||||
if err != nil {
|
||||
log.Fatalf("invalid stun url: %s", err)
|
||||
return fmt.Errorf("invalid stun url: %s", err)
|
||||
}
|
||||
_, err = url.Parse(sf.RelayURL)
|
||||
if err != nil {
|
||||
log.Fatalf("invalid relay url: %s", err)
|
||||
return fmt.Errorf("invalid relay url: %s", err)
|
||||
}
|
||||
|
||||
config = webrtc.Configuration{
|
||||
|
@ -528,13 +533,14 @@ func (sf *SnowflakeProxy) Start() {
|
|||
for ; true; <-ticker.C {
|
||||
select {
|
||||
case <-sf.shutdown:
|
||||
return
|
||||
return nil
|
||||
default:
|
||||
tokens.get()
|
||||
sessionID := genSessionID()
|
||||
sf.runSession(sessionID)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Stop closes all existing connections and shuts down the Snowflake.
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
capacity := flag.Int("capacity", 10, "maximum concurrent clients")
|
||||
capacity := flag.Uint("capacity", 0, "maximum concurrent clients")
|
||||
stunURL := flag.String("stun", sf.DefaultSTUNURL, "broker URL")
|
||||
logFilename := flag.String("log", "", "log filename")
|
||||
rawBrokerURL := flag.String("broker", sf.DefaultBrokerURL, "broker URL")
|
||||
|
@ -32,6 +32,7 @@ func main() {
|
|||
var logOutput io.Writer = os.Stderr
|
||||
log.SetFlags(log.LstdFlags | log.LUTC)
|
||||
|
||||
log.SetFlags(log.LstdFlags | log.LUTC)
|
||||
if *logFilename != "" {
|
||||
f, err := os.OpenFile(*logFilename, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600)
|
||||
if err != nil {
|
||||
|
@ -46,5 +47,8 @@ func main() {
|
|||
log.SetOutput(&safelog.LogScrubber{Output: logOutput})
|
||||
}
|
||||
|
||||
proxy.Start()
|
||||
err := proxy.Start()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue