In #3875 (moved) Mike suggests we try out the usability of having the Tor in TBB just immediately succeed at all socks handshakes, and hang up if it gets an end cell rather than a connected cell.
We should whip up a Tor patch that does this behavior, so somebody can try it out.
(We may or may not want to merge it into mainline Tor branches. I guess it depends how complex the patch is and how successful the tests are.)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
This could be a socksport option, so that TBB could configure Tor with one "succeeds-immediately" socksport, and one regular socksport. That might be a good idea if (as I suspect) this breaks some but not all applications.
I independently re-came up with the idea of using a socksport option, when thinking about the issues on #19910 (moved). I think it is a good idea.
I'm moving the milestone up for this one, since it is looking like Tor Browser is going to want to remove their hack, and have Tor pick up the hack burden.
Trac: Milestone: Tor: unspecified to Tor: 0.3.4.x-final
FWIW: There were some reasonable arguments to not try this at the tor level for Tor Browser. Instead we think we should fix the Firefox code to do the right thing for us. I'll leave this ticket open for the original idea.
The added "Optimistic Data patch for Tor.0.3.5.x" is only a quick workaround test, needs review. you may will notice more often something like in logs:
Apr 08 21:12:04.000 [info] {EDGE} connection_edge_process_inbuf(): data from edge while in 'waiting for connect response' state. Sending it anyway. package_partial=0, buflen=181
Apr 08 21:12:04.000 [info] {EDGE} connection_edge_process_inbuf(): data from edge while in 'waiting for connect response' state. Sending it anyway. package_partial=1, buflen=181
Apr 08 21:12:04.000 [info] {EDGE} connection_edge_process_inbuf(): data from edge while in 'waiting for connect response' state. Sending it anyway. package_partial=0, buflen=517
Apr 08 21:12:04.000 [info] {EDGE} connection_edge_process_inbuf(): data from edge while in 'waiting for connect response' state. Sending it anyway. package_partial=1, buflen=19
We talked about this at All Hands. At the browser level we are not really concerned about the error handling. It's not bad as is without modification and we think we can make it better with relatively little effort.
So the path forward we like for this is to implement it in tor with an option on SocksPort that Tor Browser can set.