Replies: 2 comments 4 replies
-
Hi Beq, thanks for looking into this!
Interesting! I don't have a viewer dev setup under Windows (and I don't have a proper Windows install anymore,) so I'd never tried a viewer compiled in debug mode. If the in-viewer SOCKS5 proxy setting works under debug mode, then I believe your speculation about it being a race condition is correct. What I'd observed when looking at Windows viewers' SOCKS5 handshakes in Wireshark was that either the SOCKS5 handshake or UDP ASSOCIATE response (I forget which) would be sent by the proxy, but the viewer would close the socket a fraction of a second before receiving the reply from the proxy. It's entirely possible that the SOCKS5 proxy code does work under release mode, so long as the SOCKS5 proxy it connects to responds within an extremely short timeframe. Hippolyzer is unusual for a SOCKS5 proxy in that it's written in Python (extra latency!) and that it does extra bookkeeping before responding that most SOCKS5 proxies would not do (even more latency!) I don't recall if it was the initial connect or the read that was timing out, but I can look for my old pcaps if it'd help debug.
There're a lot of smells in the viewer's SOCKS5 code, unfortunately. If I had to guess, this issue's probably something to do with |
Beta Was this translation helpful? Give feedback.
-
@beqjanus @SaladDais --a similar fix has been opened against the viewer upstream here, secondlife/viewer#1092. |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm a dev on Firestorm.
I'd not noticed the the proxy was broken until I read the notes here and followed the link to the Jira. There is an associated Jira on the FS system too.
It is rather odd, I can confirm that the behaviour remains as per the Jira as of this latest (pre)release (6.6.8) however, running the viewer in a debugger had no issues and the proxy worked fine. This suggests the code is mostly fine and we're looking for some kind of race condition or more likely just some uninitialised variable or something odd. I'll have a closer look at it when I get a chance. In the meantime, if you have noticed anything odd about the behaviour of the proxy code please let me know as it might help short-circuit that investigation.
Beq
Beta Was this translation helpful? Give feedback.
All reactions