Closed keroserene closed 6 years ago
Are you still experiencing this? Is it reproducible?
I experienced this sporadically while working on multiplexing. Right now it seems fine though.
It seems to be 100% reproducible if I explicitly readPipe.Close()
on the webrtc peer. My guess is that when the copyLoop sends an error or EOF at SOCKS, Tor interprets that as an unexpected situation, "marks for close / deletion" and so the SOCKS4 server disappears.
Maybe there's a way to account for this in main()
to also be able to recover the initial SOCKS listening? (this is not in the goptlib example, which we were originally based on) When the SOCKS connection is closed normally in handler
, there's doesn't seem to be an issue.
But, should test more possibilities / longer times.
Sometimes, Tor emits this:
[warn] The connection to the SOCKS4 proxy server at 127.0.0.1:$someport just failed. Make sure that the proxy server is up and running.
At which point no more handlers fire. Looking at the Tor source, this happens when SOCKS is "marked for close". This is inconvenient because then the client must be restarted for connectivity to work again.