From: Matthew Kerwin Date: 2012-03-30T09:38:45+09:00 Subject: Re: uninitialized constant SOCKSSocket Ok, please forget everything I said before. My brain wasn't working and I should have known better than to say anything on the internet in that state. SOCKSSocket appears to be an optional component of ruby. That's why resolv-replace only monkey-patches the class if it already exists. As an illustration, 'net/ftp' defines the following method: def open_socket(host, port) if defined? SOCKSSocket and ENV["SOCKS_SERVER"] @passive = true return SOCKSSocket.open(host, port) else return TCPSocket.open(host, port) end end Perhaps you could do something similar (i.e. create a SOCKS socket if you have SOCKS enabled, otherwise create a boring old TCP socket). And if you really need the proxy behaviour, a quick google search revealed the following gem: http://socksify.rubyforge.org/ which *might* be useful. --   Matthew Kerwin, B.Sc (CompSci) (Hons)   http://matthew.kerwin.net.au/   ABN: 59-013-727-651   "You'll never find a programming language that frees   you from the burden of clarifying your ideas." - xkcd