From 847c7c45a871d92b5dfae6ef3257e1762e127dab Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 23 Dec 2024 16:38:11 +0000 Subject: [PATCH 1/2] chore(deps): update module golang.org/x/crypto to v0.31.0 [security] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 52b52cf..e140524 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( gitlab.torproject.org/tpo/anti-censorship/geoip v0.0.0-20210928150955-7ce4b3d98d01 gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib v1.6.0 gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil v0.0.0-20240710081135-6c4d8ed41027 - golang.org/x/crypto v0.30.0 + golang.org/x/crypto v0.31.0 golang.org/x/net v0.32.0 golang.org/x/sys v0.28.0 ) diff --git a/go.sum b/go.sum index de176ae..9ab5d73 100644 --- a/go.sum +++ b/go.sum @@ -190,8 +190,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= -golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= From e038b68d79fa4f8cc1796d8a6bf6aae7d6c72b67 Mon Sep 17 00:00:00 2001 From: WofWca Date: Sat, 4 Jan 2025 19:04:24 +0400 Subject: [PATCH 2/2] refactor(proxy): simplify `tokens.ret()` on error --- proxy/lib/snowflake.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/proxy/lib/snowflake.go b/proxy/lib/snowflake.go index e13c3f0..7bd1aaf 100644 --- a/proxy/lib/snowflake.go +++ b/proxy/lib/snowflake.go @@ -613,9 +613,16 @@ func (sf *SnowflakeProxy) makeNewPeerConnection( } func (sf *SnowflakeProxy) runSession(sid string) { + connectedToClient := false + defer func() { + if !connectedToClient { + tokens.ret() + } + // Otherwise we'll `tokens.ret()` when the connection finishes. + }() + offer, relayURL := broker.pollOffer(sid, sf.ProxyType, sf.RelayDomainNamePattern) if offer == nil { - tokens.ret() return } log.Printf("Received Offer From Broker: \n\t%s", strings.ReplaceAll(offer.SDP, "\n", "\n\t")) @@ -623,7 +630,6 @@ func (sf *SnowflakeProxy) runSession(sid string) { if relayURL != "" { if err := checkIsRelayURLAcceptable(sf.RelayDomainNamePattern, sf.AllowProxyingToPrivateAddresses, sf.AllowNonTLSRelay, relayURL); err != nil { log.Printf("bad offer from broker: %v", err) - tokens.ret() return } } @@ -633,7 +639,6 @@ func (sf *SnowflakeProxy) runSession(sid string) { pc, err := sf.makePeerConnectionFromOffer(offer, config, dataChan, dataChannelAdaptor.datachannelHandler) if err != nil { log.Printf("error making WebRTC connection: %s", err) - tokens.ret() return } @@ -643,7 +648,6 @@ func (sf *SnowflakeProxy) runSession(sid string) { if inerr := pc.Close(); inerr != nil { log.Printf("error calling pc.Close: %v", inerr) } - tokens.ret() return } // Set a timeout on peerconnection. If the connection state has not @@ -652,12 +656,12 @@ func (sf *SnowflakeProxy) runSession(sid string) { select { case <-dataChan: log.Println("Connection successful") + connectedToClient = true case <-time.After(dataChannelTimeout): log.Println("Timed out waiting for client to open data channel.") if err := pc.Close(); err != nil { log.Printf("error calling pc.Close: %v", err) } - tokens.ret() } }