diff options
author | David Fifield <david@bamsoftware.com> | 2024-01-16 18:36:34 +0000 |
---|---|---|
committer | David Fifield <david@bamsoftware.com> | 2024-01-16 18:43:58 +0000 |
commit | d0529141acb706f64e4defebd22a7d8604d831db (patch) | |
tree | 6da7233ef5f96c4f40a9b02b8d26cbbb36e159a0 | |
parent | f7a468e31b6319d47a7ac1be2fa46e377652f0cc (diff) | |
download | snowflake-d0529141acb706f64e4defebd22a7d8604d831db.tar.gz snowflake-d0529141acb706f64e4defebd22a7d8604d831db.zip |
Cosmetic fixes taken from !219.
shelikhoo/dev-udp-performance-rebased branch
https://gitlab.torproject.org/shelikhoo/snowflake/-/commits/9dce28cfc2093490473432ffecd9abaab7ebdbdb
-rw-r--r-- | client/lib/snowflake.go | 8 | ||||
-rw-r--r-- | client/lib/webrtc.go | 22 | ||||
-rw-r--r-- | client/snowflake.go | 3 | ||||
-rw-r--r-- | proxy/lib/snowflake.go | 18 | ||||
-rw-r--r-- | server/lib/http.go | 1 | ||||
-rw-r--r-- | server/lib/snowflake.go | 3 |
6 files changed, 32 insertions, 23 deletions
diff --git a/client/lib/snowflake.go b/client/lib/snowflake.go index daa8b4a..4b760b0 100644 --- a/client/lib/snowflake.go +++ b/client/lib/snowflake.go @@ -39,6 +39,7 @@ import ( "github.com/pion/webrtc/v3" "github.com/xtaci/kcp-go/v5" "github.com/xtaci/smux" + "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/event" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/nat" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/turbotunnel" @@ -60,7 +61,7 @@ const ( // WindowSize is the number of packets in the send and receive window of a KCP connection. WindowSize = 65535 // StreamSize controls the maximum amount of in flight data between a client and server. - StreamSize = 1048576 //1MB + StreamSize = 1048576 // 1MB ) type dummyAddr struct{} @@ -122,7 +123,6 @@ type ClientConfig struct { // keepLocalAddresses is a flag to enable sending local network addresses (for testing purposes) // max is the maximum number of snowflakes the client should gather for each SOCKS connection func NewSnowflakeClient(config ClientConfig) (*Transport, error) { - log.Println("\n\n\n --- Starting Snowflake Client ---") iceServers := parseIceServers(config.ICEAddresses) @@ -212,6 +212,7 @@ func (t *Transport) Dial() (net.Conn, error) { cleanup = nil return &SnowflakeConn{Stream: stream, sess: sess, pconn: pconn, snowflakes: snowflakes}, nil } + func (t *Transport) AddSnowflakeEventListener(receiver event.SnowflakeEventReceiver) { t.eventDispatcher.AddSnowflakeEventListener(receiver) } @@ -244,13 +245,12 @@ func (conn *SnowflakeConn) Close() error { conn.pconn.Close() log.Printf("---- SnowflakeConn: discarding finished session ---") conn.sess.Close() - return nil //TODO: return errors if any of the above do + return nil // TODO: return errors if any of the above do } // loop through all provided STUN servers until we exhaust the list or find // one that is compatible with RFC 5780 func updateNATType(servers []webrtc.ICEServer, broker *BrokerChannel, proxy *url.URL) { - var restrictedNAT bool var err error for _, server := range servers { diff --git a/client/lib/webrtc.go b/client/lib/webrtc.go index a340be9..8ccc3d0 100644 --- a/client/lib/webrtc.go +++ b/client/lib/webrtc.go @@ -5,8 +5,6 @@ import ( "encoding/hex" "errors" "fmt" - "github.com/pion/transport/v2" - "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/proxy" "io" "log" "net/url" @@ -15,9 +13,12 @@ import ( "time" "github.com/pion/ice/v2" + "github.com/pion/transport/v2" "github.com/pion/transport/v2/stdnet" "github.com/pion/webrtc/v3" + "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/event" + "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/proxy" ) // WebRTCPeer represents a WebRTC connection to a remote snowflake proxy. @@ -45,14 +46,17 @@ type WebRTCPeer struct { } // Deprecated: Use NewWebRTCPeerWithEventsAndProxy Instead. -func NewWebRTCPeer(config *webrtc.Configuration, - broker *BrokerChannel) (*WebRTCPeer, error) { +func NewWebRTCPeer( + config *webrtc.Configuration, broker *BrokerChannel, +) (*WebRTCPeer, error) { return NewWebRTCPeerWithEventsAndProxy(config, broker, nil, nil) } // Deprecated: Use NewWebRTCPeerWithEventsAndProxy Instead. -func NewWebRTCPeerWithEvents(config *webrtc.Configuration, - broker *BrokerChannel, eventsLogger event.SnowflakeEventReceiver) (*WebRTCPeer, error) { +func NewWebRTCPeerWithEvents( + config *webrtc.Configuration, broker *BrokerChannel, + eventsLogger event.SnowflakeEventReceiver, +) (*WebRTCPeer, error) { return NewWebRTCPeerWithEventsAndProxy(config, broker, eventsLogger, nil) } @@ -61,8 +65,10 @@ func NewWebRTCPeerWithEvents(config *webrtc.Configuration, // The creation of the peer handles the signaling to the Snowflake broker, including // the exchange of SDP information, the creation of a PeerConnection, and the establishment // of a DataChannel to the Snowflake proxy. -func NewWebRTCPeerWithEventsAndProxy(config *webrtc.Configuration, - broker *BrokerChannel, eventsLogger event.SnowflakeEventReceiver, proxy *url.URL) (*WebRTCPeer, error) { +func NewWebRTCPeerWithEventsAndProxy( + config *webrtc.Configuration, broker *BrokerChannel, + eventsLogger event.SnowflakeEventReceiver, proxy *url.URL, +) (*WebRTCPeer, error) { if eventsLogger == nil { eventsLogger = event.NewSnowflakeEventDispatcher() } diff --git a/client/snowflake.go b/client/snowflake.go index 3b619f7..1603ef0 100644 --- a/client/snowflake.go +++ b/client/snowflake.go @@ -4,7 +4,6 @@ package main import ( "flag" "fmt" - "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/proxy" "io" "io/ioutil" "log" @@ -18,8 +17,10 @@ import ( "syscall" pt "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib" + sf "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/client/lib" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/event" + "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/proxy" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/safelog" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/version" ) diff --git a/proxy/lib/snowflake.go b/proxy/lib/snowflake.go index 0957a29..ca38a3d 100644 --- a/proxy/lib/snowflake.go +++ b/proxy/lib/snowflake.go @@ -78,7 +78,7 @@ const ( // client is not going to connect dataChannelTimeout = 20 * time.Second - //Maximum number of bytes to be read from an HTTP request + // Maximum number of bytes to be read from an HTTP request readLimit = 100000 sessionIDLength = 16 @@ -406,11 +406,11 @@ func (sf *SnowflakeProxy) makeWebRTCAPI() *webrtc.API { // candidates is complete and the answer is available in LocalDescription. // Installs an OnDataChannel callback that creates a webRTCConn and passes it to // datachannelHandler. -func (sf *SnowflakeProxy) makePeerConnectionFromOffer(sdp *webrtc.SessionDescription, - config webrtc.Configuration, - dataChan chan struct{}, - handler func(conn *webRTCConn, remoteAddr net.Addr)) (*webrtc.PeerConnection, error) { - +func (sf *SnowflakeProxy) makePeerConnectionFromOffer( + sdp *webrtc.SessionDescription, + config webrtc.Configuration, dataChan chan struct{}, + handler func(conn *webRTCConn, remoteAddr net.Addr), +) (*webrtc.PeerConnection, error) { api := sf.makeWebRTCAPI() pc, err := api.NewPeerConnection(config) if err != nil { @@ -523,9 +523,9 @@ func (sf *SnowflakeProxy) makePeerConnectionFromOffer(sdp *webrtc.SessionDescrip // Create a new PeerConnection. Blocks until the gathering of ICE // candidates is complete and the answer is available in LocalDescription. -func (sf *SnowflakeProxy) makeNewPeerConnection(config webrtc.Configuration, - dataChan chan struct{}) (*webrtc.PeerConnection, error) { - +func (sf *SnowflakeProxy) makeNewPeerConnection( + config webrtc.Configuration, dataChan chan struct{}, +) (*webrtc.PeerConnection, error) { api := sf.makeWebRTCAPI() pc, err := api.NewPeerConnection(config) if err != nil { diff --git a/server/lib/http.go b/server/lib/http.go index 4d33363..1f173a4 100644 --- a/server/lib/http.go +++ b/server/lib/http.go @@ -16,6 +16,7 @@ import ( "time" "github.com/gorilla/websocket" + "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/encapsulation" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/turbotunnel" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/websocketconn" diff --git a/server/lib/snowflake.go b/server/lib/snowflake.go index f836035..3ca1158 100644 --- a/server/lib/snowflake.go +++ b/server/lib/snowflake.go @@ -46,8 +46,9 @@ import ( "github.com/xtaci/kcp-go/v5" "github.com/xtaci/smux" - "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/turbotunnel" "golang.org/x/net/http2" + + "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/turbotunnel" ) const ( |