I have fixed a couple of problems in the SOCKS 5 code and derived a SOCKS 4 implementation from it. I have attached a patch and new files to http://bugzilla.mozilla.org/show_bug.cgi?id=65583 and am looking for somebody to give it a try. There is a new preference, network.proxy.socks_version, which should be set to "4" or "5". (It will be 5 by default if the pref is missing.) There is no UI for setting that yet--I am going to add a new defect to track that. The current implementations of SOCKS 4 and 5 are not any good at reporting why a connection fails. So I have also added logging: set the environment variable NSPR_LOG_MODULES=SOCKS:3 and NSPR_LOG_FILE=filename to find out what's going wrong. I don't have checkin permissions yet, so I will also be looking for a volunteer to check this stuff in.
