add socks proxy support