mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
Formatting improvements.
This commit is contained in:
parent
e27709080a
commit
d6467ff585
5 changed files with 20 additions and 24 deletions
|
@ -30,7 +30,6 @@ type Tongue interface {
|
||||||
// Interface for collecting some number of Snowflakes, for passing along
|
// Interface for collecting some number of Snowflakes, for passing along
|
||||||
// ultimately to the SOCKS handler.
|
// ultimately to the SOCKS handler.
|
||||||
type SnowflakeCollector interface {
|
type SnowflakeCollector interface {
|
||||||
|
|
||||||
// Add a Snowflake to the collection.
|
// Add a Snowflake to the collection.
|
||||||
// Implementation should decide how to connect and maintain the webRTCConn.
|
// Implementation should decide how to connect and maintain the webRTCConn.
|
||||||
Collect() (Snowflake, error)
|
Collect() (Snowflake, error)
|
||||||
|
|
|
@ -44,8 +44,7 @@ func (p *Peers) Collect() (Snowflake, error) {
|
||||||
cnt := p.Count()
|
cnt := p.Count()
|
||||||
s := fmt.Sprintf("Currently at [%d/%d]", cnt, p.capacity)
|
s := fmt.Sprintf("Currently at [%d/%d]", cnt, p.capacity)
|
||||||
if cnt >= p.capacity {
|
if cnt >= p.capacity {
|
||||||
s = fmt.Sprintf("At capacity [%d/%d]", cnt, p.capacity)
|
return nil, fmt.Errorf("At capacity [%d/%d]", cnt, p.capacity)
|
||||||
return nil, errors.New(s)
|
|
||||||
}
|
}
|
||||||
log.Println("WebRTC: Collecting a new Snowflake.", s)
|
log.Println("WebRTC: Collecting a new Snowflake.", s)
|
||||||
// Engage the Snowflake Catching interface, which must be available.
|
// Engage the Snowflake Catching interface, which must be available.
|
||||||
|
@ -68,12 +67,12 @@ func (p *Peers) Pop() Snowflake {
|
||||||
// Blocks until an available, valid snowflake appears.
|
// Blocks until an available, valid snowflake appears.
|
||||||
var snowflake Snowflake
|
var snowflake Snowflake
|
||||||
var ok bool
|
var ok bool
|
||||||
for nil == snowflake {
|
for snowflake == nil {
|
||||||
snowflake, ok = <-p.snowflakeChan
|
snowflake, ok = <-p.snowflakeChan
|
||||||
conn := snowflake.(*WebRTCPeer)
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
conn := snowflake.(*WebRTCPeer)
|
||||||
if conn.closed {
|
if conn.closed {
|
||||||
snowflake = nil
|
snowflake = nil
|
||||||
}
|
}
|
||||||
|
@ -120,5 +119,5 @@ func (p *Peers) End() {
|
||||||
p.activePeers.Remove(e)
|
p.activePeers.Remove(e)
|
||||||
e = next
|
e = next
|
||||||
}
|
}
|
||||||
log.Println("WebRTC: melted all", cnt, "snowflakes.")
|
log.Printf("WebRTC: melted all %d snowflakes.", cnt)
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,13 +50,13 @@ func CreateBrokerTransport() http.RoundTripper {
|
||||||
// to clients, and |front| is the option fronting domain.
|
// to clients, and |front| is the option fronting domain.
|
||||||
func NewBrokerChannel(broker string, front string, transport http.RoundTripper) *BrokerChannel {
|
func NewBrokerChannel(broker string, front string, transport http.RoundTripper) *BrokerChannel {
|
||||||
targetURL, err := url.Parse(broker)
|
targetURL, err := url.Parse(broker)
|
||||||
if nil != err {
|
if err != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
log.Println("Rendezvous using Broker at:", broker)
|
log.Println("Rendezvous using Broker at:", broker)
|
||||||
bc := new(BrokerChannel)
|
bc := new(BrokerChannel)
|
||||||
bc.url = targetURL
|
bc.url = targetURL
|
||||||
if "" != front { // Optional front domain.
|
if front != "" { // Optional front domain.
|
||||||
log.Println("Domain fronting using:", front)
|
log.Println("Domain fronting using:", front)
|
||||||
bc.Host = bc.url.Host
|
bc.Host = bc.url.Host
|
||||||
bc.url.Host = front
|
bc.url.Host = front
|
||||||
|
@ -109,7 +109,6 @@ func (bc *BrokerChannel) Negotiate(offer *webrtc.SessionDescription) (
|
||||||
}
|
}
|
||||||
answer := deserializeSessionDescription(string(body))
|
answer := deserializeSessionDescription(string(body))
|
||||||
return answer, nil
|
return answer, nil
|
||||||
|
|
||||||
case http.StatusServiceUnavailable:
|
case http.StatusServiceUnavailable:
|
||||||
return nil, errors.New(BrokerError503)
|
return nil, errors.New(BrokerError503)
|
||||||
case http.StatusBadRequest:
|
case http.StatusBadRequest:
|
||||||
|
@ -125,8 +124,7 @@ type WebRTCDialer struct {
|
||||||
webrtcConfig *webrtc.Configuration
|
webrtcConfig *webrtc.Configuration
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWebRTCDialer(
|
func NewWebRTCDialer(broker *BrokerChannel, iceServers []webrtc.ICEServer) *WebRTCDialer {
|
||||||
broker *BrokerChannel, iceServers []webrtc.ICEServer) *WebRTCDialer {
|
|
||||||
var config webrtc.Configuration
|
var config webrtc.Configuration
|
||||||
if iceServers != nil {
|
if iceServers != nil {
|
||||||
config = webrtc.Configuration{
|
config = webrtc.Configuration{
|
||||||
|
|
|
@ -30,9 +30,9 @@ func ConnectLoop(snowflakes sf.SnowflakeCollector) {
|
||||||
for {
|
for {
|
||||||
// Check if ending is necessary.
|
// Check if ending is necessary.
|
||||||
_, err := snowflakes.Collect()
|
_, err := snowflakes.Collect()
|
||||||
if nil != err {
|
if err != nil {
|
||||||
log.Println("WebRTC:", err,
|
log.Printf("WebRTC: %v Retrying in %v seconds...",
|
||||||
" Retrying in", sf.ReconnectTimeout, "seconds...")
|
err, sf.ReconnectTimeout)
|
||||||
}
|
}
|
||||||
select {
|
select {
|
||||||
case <-time.After(time.Second * sf.ReconnectTimeout):
|
case <-time.After(time.Second * sf.ReconnectTimeout):
|
||||||
|
@ -52,7 +52,7 @@ func socksAcceptLoop(ln *pt.SocksListener, snowflakes sf.SnowflakeCollector) {
|
||||||
log.Println("SOCKS listening...")
|
log.Println("SOCKS listening...")
|
||||||
conn, err := ln.AcceptSocks()
|
conn, err := ln.AcceptSocks()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if e, ok := err.(net.Error); ok && e.Temporary() {
|
if err, ok := err.(net.Error); ok && err.Temporary() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
log.Printf("SOCKS accept error: %s", err)
|
log.Printf("SOCKS accept error: %s", err)
|
||||||
|
@ -66,7 +66,7 @@ func socksAcceptLoop(ln *pt.SocksListener, snowflakes sf.SnowflakeCollector) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//s is a comma-separated list of ICE server URLs
|
// s is a comma-separated list of ICE server URLs.
|
||||||
func parseIceServers(s string) []webrtc.ICEServer {
|
func parseIceServers(s string) []webrtc.ICEServer {
|
||||||
var servers []webrtc.ICEServer
|
var servers []webrtc.ICEServer
|
||||||
log.Println(s)
|
log.Println(s)
|
||||||
|
@ -98,9 +98,9 @@ func main() {
|
||||||
|
|
||||||
log.SetFlags(log.LstdFlags | log.LUTC)
|
log.SetFlags(log.LstdFlags | log.LUTC)
|
||||||
|
|
||||||
// Don't write to stderr; versions of tor earlier than about
|
// Don't write to stderr; versions of tor earlier than about 0.3.5.6 do
|
||||||
// 0.3.5.6 do not read from the pipe, and eventually we will
|
// not read from the pipe, and eventually we will deadlock because the
|
||||||
// deadlock because the buffer is full.
|
// buffer is full.
|
||||||
// https://bugs.torproject.org/26360
|
// https://bugs.torproject.org/26360
|
||||||
// https://bugs.torproject.org/25600#comment:14
|
// https://bugs.torproject.org/25600#comment:14
|
||||||
var logOutput = ioutil.Discard
|
var logOutput = ioutil.Discard
|
||||||
|
@ -120,7 +120,7 @@ func main() {
|
||||||
defer logFile.Close()
|
defer logFile.Close()
|
||||||
logOutput = logFile
|
logOutput = logFile
|
||||||
}
|
}
|
||||||
//We want to send the log output through our scrubber first
|
// We want to send the log output through our scrubber first
|
||||||
log.SetOutput(&safelog.LogScrubber{Output: logOutput})
|
log.SetOutput(&safelog.LogScrubber{Output: logOutput})
|
||||||
|
|
||||||
log.Println("\n\n\n --- Starting Snowflake Client ---")
|
log.Println("\n\n\n --- Starting Snowflake Client ---")
|
||||||
|
@ -194,10 +194,10 @@ func main() {
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
// wait for a signal
|
// Wait for a signal.
|
||||||
<-sigChan
|
<-sigChan
|
||||||
|
|
||||||
// signal received, shut down
|
// Signal received, shut down.
|
||||||
for _, ln := range listeners {
|
for _, ln := range listeners {
|
||||||
ln.Close()
|
ln.Close()
|
||||||
}
|
}
|
||||||
|
|
|
@ -345,10 +345,10 @@ func main() {
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
// wait for a signal
|
// Wait for a signal.
|
||||||
sig := <-sigChan
|
sig := <-sigChan
|
||||||
|
|
||||||
// signal received, shut down
|
// Signal received, shut down.
|
||||||
log.Printf("caught signal %q, exiting", sig)
|
log.Printf("caught signal %q, exiting", sig)
|
||||||
for _, server := range servers {
|
for _, server := range servers {
|
||||||
server.Close()
|
server.Close()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue