[tor-bugs] #21314 [Circumvention/Snowflake]: snowflake-client needs to stop using my network when I'm not giving it requests
Tor Bug Tracker & Wiki
blackhole at torproject.org
Fri Jan 31 19:51:18 UTC 2020
#21314: snowflake-client needs to stop using my network when I'm not giving it
requests
-------------------------------------------------+-------------------------
Reporter: arma | Owner: (none)
Type: defect | Status: new
Priority: Medium | Milestone:
Component: Circumvention/Snowflake | Version:
Severity: Normal | Resolution:
Keywords: tor-pt, ex-sponsor19, anti- | Actual Points:
censorship-roadmap |
Parent ID: #21967 | Points: 2
Reviewer: | Sponsor:
-------------------------------------------------+-------------------------
Comment (by dcf):
I think the way to do this is to restructure the code so that the broker-
polling loop (which keeps the client replenished with fresh proxies)
happens inside the SOCKS handler, not outside.
That is, currently the code works like this, with the broker-polling loop
being global and independent of any SOCKS connection:
{{{
func main() {
snowflakes := sf.NewPeers() // etc.
go ConnectLoop(snowflakes) // start the background broker-polling loop
for conn in ln.AcceptSocks() {
// pass a handle to the snowflake collector to the handler
function
go Handler(conn, snowflakes)
}
snowflakes.End()
}
func Handler(socks net.Conn, snowflakes SnowflakeCollector) {
snowflake := snowflakes.Pop()
copyLoop(socks, snowflake)
}
}}}
Instead, it should start a new browser-polling loop specific to each SOCKS
connection (tor usually has 0 or 1 of these open at a time):
{{{
func main() {
for conn in ln.AcceptSocks() {
go Handler(conn)
}
}
func Handler(socks net.Conn, snowflakes SnowflakeCollector) {
snowflakes := sf.NewPeers() // etc.
go ConnectLoop(snowflakes) // start the background broker-polling loop
snowflake := snowflakes.Pop()
copyLoop(socks, snowflake)
snowflakes.End()
}
}}}
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/21314#comment:12>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list