commit 3ec771df01770d708bd5cc8c90156ee4c7e9cff6 Author: Serene Han keroserene+git@gmail.com Date: Thu Mar 3 22:51:10 2016 -0800
prepare IceServerList client flag (#24) --- client/snowflake.go | 3 +++ client/util.go | 16 ++++++++++++++++ 2 files changed, 19 insertions(+)
diff --git a/client/snowflake.go b/client/snowflake.go index 25ccfef..4af76e8 100644 --- a/client/snowflake.go +++ b/client/snowflake.go @@ -22,6 +22,7 @@ var ptInfo pt.ClientInfo // var logFile *os.File var brokerURL string var frontDomain string +var iceServers IceServerList
// When a connection handler starts, +1 is written to this channel; when it // ends, -1 is written. @@ -109,6 +110,7 @@ func handler(conn *pt.SocksConn) error {
// TODO: Make SOCKS acceptance more independent from WebRTC so they can // be more easily interchanged. + copyLoop(conn, remote) // <-remote.endChannel log.Println("----END---") @@ -161,6 +163,7 @@ func main() { webrtc.SetLoggingVerbosity(1) flag.StringVar(&brokerURL, "url", "", "URL of signaling broker") flag.StringVar(&frontDomain, "front", "", "front domain") + flag.Var(&iceServers, "ice", "comma-separated list of ICE servers") flag.Parse() logFile, err := os.OpenFile("snowflake.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0600) if err != nil { diff --git a/client/util.go b/client/util.go index abefa04..2a54f6a 100644 --- a/client/util.go +++ b/client/util.go @@ -1,7 +1,9 @@ package main
import ( + "fmt" "log" + "strings" "time" )
@@ -9,6 +11,20 @@ const ( LogTimeInterval = 5 )
+type IceServerList []string + +func (i *IceServerList) String() string { + return fmt.Sprint(*i) +} + +func (i *IceServerList) Set(s string) error { + for _, server := range strings.Split(s, ",") { + // TODO: STUN / TURN url format validation? + *i = append(*i, server) + } + return nil +} + type BytesInfo struct { outboundChan chan int inboundChan chan int
tor-commits@lists.torproject.org