Opened 2 years ago

Last modified 2 years ago

#25065 assigned enhancement

goptlib doesn't allow optimistic SOCKS data

Reported by: dcf Owned by: dcf
Priority: Medium Milestone:
Component: Circumvention/Pluggable transport Version:
Severity: Minor Keywords: goptlib
Cc: brade, mcs Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


goptlib wraps its socket in a bufio.ReadWriter while processing the SOCKS handshake. Before returning the socket back to the application, it makes sure there is no unread data sitting in the buffer (which would otherwise be lost).

In #24432, we're trying to have Tor Browser use meek-client as a proxy directly, not going through Tor. The problem (comment:19:ticket:24432) is that Tor Browser has a special optimistic data SOCKS patch that causes it to send data exactly where goptlib checks to make sure there isn't any.

A mild rewrite of goptlib's SOCKS code could eliminate the internal buffer and enable Tor Browser's optimistic data.

Child Tickets

Change History (2)

comment:1 Changed 2 years ago by mcs

Cc: brade mcs added

Of course if the Tor Browser team decides to stop using the optimistic SOCKS data patch (see #19910), then there will be no need for this ticket.

comment:2 Changed 2 years ago by gk

We actually think we want to redo the optimistic SOCKS patch in Firefox code.

Note: See TracTickets for help on using tickets.