New version of the socks library socksipy from https://code.googlle.com/p/socksipy-branch/
This commit is contained in:
parent
577fd71472
commit
e94a73553d
1 changed files with 11 additions and 2 deletions
13
sleekxmpp/thirdparty/socks.py
vendored
13
sleekxmpp/thirdparty/socks.py
vendored
|
@ -28,6 +28,9 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMANGE.
|
||||||
This module provides a standard socket-like interface for Python
|
This module provides a standard socket-like interface for Python
|
||||||
for tunneling connections through SOCKS proxies.
|
for tunneling connections through SOCKS proxies.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
Minor modifications made by Christopher Gilbert (http://motomastyle.com/)
|
Minor modifications made by Christopher Gilbert (http://motomastyle.com/)
|
||||||
for use in PyLoris (http://pyloris.sourceforge.net/)
|
for use in PyLoris (http://pyloris.sourceforge.net/)
|
||||||
|
@ -35,10 +38,13 @@ for use in PyLoris (http://pyloris.sourceforge.net/)
|
||||||
Minor modifications made by Mario Vilas (http://breakingcode.wordpress.com/)
|
Minor modifications made by Mario Vilas (http://breakingcode.wordpress.com/)
|
||||||
mainly to merge bug fixes found in Sourceforge
|
mainly to merge bug fixes found in Sourceforge
|
||||||
|
|
||||||
|
Minor modifications made by Eugene Dementiev (http://www.dementiev.eu/)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import socket
|
import socket
|
||||||
import struct
|
import struct
|
||||||
|
import sys
|
||||||
|
|
||||||
PROXY_TYPE_SOCKS4 = 1
|
PROXY_TYPE_SOCKS4 = 1
|
||||||
PROXY_TYPE_SOCKS5 = 2
|
PROXY_TYPE_SOCKS5 = 2
|
||||||
|
@ -208,7 +214,7 @@ class socksocket(socket.socket):
|
||||||
if self.__proxy[3]:
|
if self.__proxy[3]:
|
||||||
# Resolve remotely
|
# Resolve remotely
|
||||||
ipaddr = None
|
ipaddr = None
|
||||||
req = req + chr(0x03).encode() + chr(len(destaddr)).encode() + destaddr
|
req = req + chr(0x03).encode() + chr(len(destaddr)).encode() + destaddr.encode()
|
||||||
else:
|
else:
|
||||||
# Resolve locally
|
# Resolve locally
|
||||||
ipaddr = socket.inet_aton(socket.gethostbyname(destaddr))
|
ipaddr = socket.inet_aton(socket.gethostbyname(destaddr))
|
||||||
|
@ -323,7 +329,10 @@ class socksocket(socket.socket):
|
||||||
# We read the response until we get the string "\r\n\r\n"
|
# We read the response until we get the string "\r\n\r\n"
|
||||||
resp = self.recv(1)
|
resp = self.recv(1)
|
||||||
while resp.find("\r\n\r\n".encode()) == -1:
|
while resp.find("\r\n\r\n".encode()) == -1:
|
||||||
resp = resp + self.recv(1)
|
recv = self.recv(1)
|
||||||
|
if not recv:
|
||||||
|
raise GeneralProxyError((1, _generalerrors[1]))
|
||||||
|
resp = resp + recv
|
||||||
# We just need the first line to check if the connection
|
# We just need the first line to check if the connection
|
||||||
# was successful
|
# was successful
|
||||||
statusline = resp.splitlines()[0].split(" ".encode(), 2)
|
statusline = resp.splitlines()[0].split(" ".encode(), 2)
|
||||||
|
|
Loading…
Reference in a new issue