Comment package and minor changes exports

This commit is contained in:
Cecylia Bocovich 2021-10-26 15:10:59 -04:00
parent b2edf948e2
commit 84e8a183e5
7 changed files with 48 additions and 24 deletions

View file

@ -1,4 +1,4 @@
package snowflake
package snowflake_proxy
import (
"bytes"

View file

@ -1,4 +1,27 @@
package snowflake
/*
Package snowflake_proxy provides functionality for creating, starting, and stopping a snowflake
proxy.
To run a proxy, you must first create a proxy configuration
proxy := snowflake_proxy.SnowflakeProxy{
BrokerURL: "https://snowflake-broker.example.com",
STUNURL: "stun:stun.stunprotocol.org:3478",
// ...
}
You may then start and stop the proxy. Stopping the proxy will close existing connections and
the proxy will not poll for more clients.
go func() {
proxy.Start()
}
// ...
proxy.Stop()
*/
package snowflake_proxy
import (
"bytes"
@ -76,11 +99,10 @@ var (
// Snowflake in another Go application.
type SnowflakeProxy struct {
Capacity uint
StunURL string
RawBrokerURL string
STUNURL string
BrokerURL string
KeepLocalAddresses bool
RelayURL string
LogOutput io.Writer
shutdown chan struct{}
}
@ -475,12 +497,12 @@ func (sf *SnowflakeProxy) Start() {
log.Println("starting")
var err error
broker, err = newSignalingServer(sf.RawBrokerURL, sf.KeepLocalAddresses)
broker, err = newSignalingServer(sf.BrokerURL, sf.KeepLocalAddresses)
if err != nil {
log.Fatal(err)
}
_, err = url.Parse(sf.StunURL)
_, err = url.Parse(sf.STUNURL)
if err != nil {
log.Fatalf("invalid stun url: %s", err)
}
@ -492,7 +514,7 @@ func (sf *SnowflakeProxy) Start() {
config = webrtc.Configuration{
ICEServers: []webrtc.ICEServer{
{
URLs: []string{sf.StunURL},
URLs: []string{sf.STUNURL},
},
},
}

View file

@ -1,4 +1,4 @@
package snowflake
package snowflake_proxy
import (
"sync/atomic"

View file

@ -1,4 +1,4 @@
package snowflake
package snowflake_proxy
import (
"testing"

View file

@ -1,4 +1,4 @@
package snowflake
package snowflake_proxy
import (
"fmt"

View file

@ -1,4 +1,4 @@
package snowflake
package snowflake_proxy
import (
"fmt"

View file

@ -7,42 +7,44 @@ import (
"os"
"git.torproject.org/pluggable-transports/snowflake.git/common/safelog"
"git.torproject.org/pluggable-transports/snowflake.git/proxy/lib"
sf "git.torproject.org/pluggable-transports/snowflake.git/proxy/lib"
)
func main() {
capacity := flag.Int("capacity", 10, "maximum concurrent clients")
stunURL := flag.String("stun", snowflake.DefaultSTUNURL, "broker URL")
stunURL := flag.String("stun", sf.DefaultSTUNURL, "broker URL")
logFilename := flag.String("log", "", "log filename")
rawBrokerURL := flag.String("broker", snowflake.DefaultBrokerURL, "broker URL")
rawBrokerURL := flag.String("broker", sf.DefaultBrokerURL, "broker URL")
unsafeLogging := flag.Bool("unsafe-logging", false, "prevent logs from being scrubbed")
keepLocalAddresses := flag.Bool("keep-local-addresses", false, "keep local LAN address ICE candidates")
relayURL := flag.String("relay", snowflake.DefaultRelayURL, "websocket relay URL")
relayURL := flag.String("relay", sf.DefaultRelayURL, "websocket relay URL")
flag.Parse()
sf := snowflake.SnowflakeProxy{
proxy := sf.SnowflakeProxy{
Capacity: uint(*capacity),
StunURL: *stunURL,
RawBrokerURL: *rawBrokerURL,
STUNURL: *stunURL,
BrokerURL: *rawBrokerURL,
KeepLocalAddresses: *keepLocalAddresses,
RelayURL: *relayURL,
LogOutput: os.Stderr,
}
var logOutput io.Writer = os.Stderr
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 {
log.Fatal(err)
}
defer f.Close()
sf.LogOutput = io.MultiWriter(os.Stderr, f)
logOutput = io.MultiWriter(os.Stderr, f)
}
if *unsafeLogging {
log.SetOutput(sf.LogOutput)
log.SetOutput(logOutput)
} else {
log.SetOutput(&safelog.LogScrubber{Output: sf.LogOutput})
log.SetOutput(&safelog.LogScrubber{Output: logOutput})
}
sf.Start()
proxy.Start()
}