Bug 83

Summary: Client should be able to override proxy settings
Product: Salem Reporter: Peter <peter.thoenen>
Component: ClientAssignee: loftar <fredrik>
Status: CONFIRMED ---    
Severity: normal CC: peter.thoenen, theandromedan
Priority: ---    
Version: unspecified   
Hardware: PC   
OS: Windows   

Description Peter 2012-11-10 10:39:06 CET
When I launch the client I get the following error after a long (5 or so minute) "Authenticating...." period - "Reply from SOCKS server has bad version".  While java itself is configured to use "browser settings" that seems to be failing with Salem (my browser works fine).    To be honest, would prefer if Salem had it's own proxy settings or the ability (can I?) set it via java command line, something like --proxy:none or something.

If it matters, java and system version below:

C:\>java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) Client VM (build 23.5-b02, mixed mode)

C:\>systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows 7 Ultimate
OS Version:                6.1.7601 Service Pack 1 Build 7601
Comment 1 loftar 2012-11-10 16:13:01 CET
I suggest you try setting Java's proxy settings to "Direct connection" instead of having it use the browser's settings.

> To be honest, would prefer if Salem had it's own proxy settings
I would too, but I'm not aware of any way I can override the system settings.
Comment 2 Peter 2012-11-10 20:37:16 CET
It's pretty easy to override the settings, I play a bunch of java games and there are standardized libraries for doing so (I'm not a java guy but do know a bit of programming).  I know because I have identified this error to those other games also and it was fixed. You basically add a "options" option to the initial logon GUI and then allow folk to specify specific connection options (i.e. proxies, etc) which you then use as arguments when they click "connect".

The problem here is if I move this to "direct connect" it's going to break a bunch of other stuff on my system and I really don't want to get into the game where I have to change my java settings every time I want to play.

Will give it a shot though later today when I get back and report but even if it works, it's not going to be an acceptable solution in the long run when this goes live.
Comment 3 Peter 2012-11-10 20:39:59 CET
Actually did a quick confirm, works with direct connect but still needs to be resolved.  It's also extremely odd it doesn't work with my browser proxy settings though the browser works, def something on the Salem side.
Comment 4 loftar 2012-11-11 06:27:16 CET
If you know the name of any of those libraries, then, please do tell, so that I can check out how they do it. :)

Oh, and the reason it doesn't work with proxy is that Java's support for UDP over proxy is buggy or nonexistent (I'm not sure which).

Also, renaming this issue.
Comment 5 Peter 2012-11-11 08:49:51 CET
Let me contact some java developers I know
Comment 6 Paul Franz 2012-11-11 15:27:59 CET
You can define the socks server via the System properties. To do that on the command-line you type:

java -DsocksProxyHost=proxy.domain.com -DsocksProxyPort=8080

That will set the proxy settings for that JVM that is created. Now, from the looks of the initial post I am wondering if the issue is that the SOCKS version is a not a version 4 or 5 server. Which is the only version that is supported by Java.

Now, the Java program can support this via either setting the System properties in the app or using the Proxy/ProxySelector  class

http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html