summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/lib/peers.go4
-rw-r--r--client/lib/rendezvous.go12
-rw-r--r--client/snowflake.go16
3 files changed, 10 insertions, 22 deletions
diff --git a/client/lib/peers.go b/client/lib/peers.go
index 12213e1..d385971 100644
--- a/client/lib/peers.go
+++ b/client/lib/peers.go
@@ -35,7 +35,7 @@ func NewPeers(max int) *Peers {
// Use buffered go channel to pass snowflakes onwards to the SOCKS handler.
p.snowflakeChan = make(chan Snowflake, max)
p.activePeers = list.New()
- p.melt = make(chan struct{}, 1)
+ p.melt = make(chan struct{})
return p
}
@@ -110,7 +110,7 @@ func (p *Peers) purgeClosedPeers() {
// Close all Peers contained here.
func (p *Peers) End() {
close(p.snowflakeChan)
- p.melt <- struct{}{}
+ close(p.melt)
cnt := p.Count()
for e := p.activePeers.Front(); e != nil; {
next := e.Next()
diff --git a/client/lib/rendezvous.go b/client/lib/rendezvous.go
index 0b15f68..55d89c6 100644
--- a/client/lib/rendezvous.go
+++ b/client/lib/rendezvous.go
@@ -125,13 +125,8 @@ type WebRTCDialer struct {
}
func NewWebRTCDialer(broker *BrokerChannel, iceServers []webrtc.ICEServer) *WebRTCDialer {
- var config webrtc.Configuration
- if iceServers != nil {
- config = webrtc.Configuration{
- ICEServers: iceServers,
- }
- } else {
- config = webrtc.Configuration{}
+ config := webrtc.Configuration{
+ ICEServers: iceServers,
}
return &WebRTCDialer{
BrokerChannel: broker,
@@ -141,9 +136,6 @@ func NewWebRTCDialer(broker *BrokerChannel, iceServers []webrtc.ICEServer) *WebR
// Initialize a WebRTC Connection by signaling through the broker.
func (w WebRTCDialer) Catch() (Snowflake, error) {
- if nil == w.BrokerChannel {
- return nil, errors.New("cannot Dial WebRTC without a BrokerChannel")
- }
// TODO: [#3] Fetch ICE server information from Broker.
// TODO: [#18] Consider TURN servers here too.
connection := NewWebRTCPeer(w.webrtcConfig, w.BrokerChannel)
diff --git a/client/snowflake.go b/client/snowflake.go
index bd53f65..1d7907b 100644
--- a/client/snowflake.go
+++ b/client/snowflake.go
@@ -47,9 +47,7 @@ func ConnectLoop(snowflakes sf.SnowflakeCollector) {
// Accept local SOCKS connections and pass them to the handler.
func socksAcceptLoop(ln *pt.SocksListener, snowflakes sf.SnowflakeCollector) {
defer ln.Close()
- log.Println("Started SOCKS listener.")
for {
- log.Println("SOCKS listening...")
conn, err := ln.AcceptSocks()
if err != nil {
if err, ok := err.(net.Error); ok && err.Temporary() {
@@ -58,7 +56,7 @@ func socksAcceptLoop(ln *pt.SocksListener, snowflakes sf.SnowflakeCollector) {
log.Printf("SOCKS accept error: %s", err)
break
}
- log.Println("SOCKS accepted: ", conn.Req)
+ log.Printf("SOCKS accepted: %v", conn.Req)
err = sf.Handler(conn, snowflakes)
if err != nil {
log.Printf("handler error: %s", err)
@@ -69,16 +67,13 @@ func socksAcceptLoop(ln *pt.SocksListener, snowflakes sf.SnowflakeCollector) {
// s is a comma-separated list of ICE server URLs.
func parseIceServers(s string) []webrtc.ICEServer {
var servers []webrtc.ICEServer
- log.Println(s)
s = strings.TrimSpace(s)
if len(s) == 0 {
return nil
}
urls := strings.Split(s, ",")
- log.Printf("Using ICE Servers:")
for _, url := range urls {
url = strings.TrimSpace(url)
- log.Printf("url: %s", url)
servers = append(servers, webrtc.ICEServer{
URLs: []string{url},
})
@@ -126,6 +121,10 @@ func main() {
log.Println("\n\n\n --- Starting Snowflake Client ---")
iceServers := parseIceServers(*iceServersCommas)
+ log.Printf("Using ICE servers:")
+ for _, server := range iceServers {
+ log.Printf("url: %v", strings.Join(server.URLs, " "))
+ }
// Prepare to collect remote WebRTC peers.
snowflakes := sf.NewPeers(*max)
@@ -134,10 +133,6 @@ func main() {
broker := sf.NewBrokerChannel(*brokerURL, *frontDomain, sf.CreateBrokerTransport())
snowflakes.Tongue = sf.NewWebRTCDialer(broker, iceServers)
- if nil == snowflakes.Tongue {
- log.Fatal("Unable to prepare rendezvous method.")
- return
- }
// Use a real logger to periodically output how much traffic is happening.
snowflakes.BytesLogger = &sf.BytesSyncLogger{
InboundChan: make(chan int, 5),
@@ -170,6 +165,7 @@ func main() {
pt.CmethodError(methodName, err.Error())
break
}
+ log.Printf("Started SOCKS listener at %v.", ln.Addr())
go socksAcceptLoop(ln, snowflakes)
pt.Cmethod(methodName, ln.Version(), ln.Addr())
listeners = append(listeners, ln)