aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorCecylia Bocovich <cohosh@torproject.org>2022-02-08 13:00:43 -0500
committerCecylia Bocovich <cohosh@torproject.org>2022-02-08 13:00:43 -0500
commitbcc162898a9b085d8543e1aaeff7950b4431c5f3 (patch)
treef5ac9b64649602dd6a210ee231915b3cfdc73b0a /server
parente6e5e20ae8b5883b37f5dea656540825e237d820 (diff)
downloadsnowflake-bcc162898a9b085d8543e1aaeff7950b4431c5f3.tar.gz
snowflake-bcc162898a9b085d8543e1aaeff7950b4431c5f3.zip
Initialize SnowflakeListener.closed
Fixes a bug where an uninitialized channel causes a panic when closed (#40099).
Diffstat (limited to 'server')
-rw-r--r--server/lib/snowflake.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/server/lib/snowflake.go b/server/lib/snowflake.go
index a1051e0..44f287f 100644
--- a/server/lib/snowflake.go
+++ b/server/lib/snowflake.go
@@ -75,7 +75,11 @@ func NewSnowflakeServer(getCertificate func(*tls.ClientHelloInfo) (*tls.Certific
// Listen starts a listener on addr that will accept both turbotunnel
// and legacy Snowflake connections.
func (t *Transport) Listen(addr net.Addr) (*SnowflakeListener, error) {
- listener := &SnowflakeListener{addr: addr, queue: make(chan net.Conn, 65534)}
+ listener := &SnowflakeListener{
+ addr: addr,
+ queue: make(chan net.Conn, 65534),
+ closed: make(chan struct{}),
+ }
handler := httpHandler{
// pconn is shared among all connections to this server. It