changeset 3503b0321a4f in /home/hg/repos/python-nbxmpp

details:http://hg.gajim.org/python-nbxmpp?cmd=changeset;node=3503b0321a4f
description: fix connecting via socks5 proxy

diffstat:

 nbxmpp/proxy_connectors.py |  36 ++++++++++++++++++------------------
 nbxmpp/transports_nb.py    |   5 ++++-
 2 files changed, 22 insertions(+), 19 deletions(-)

diffs (109 lines):

diff -r 381e96f81981 -r 3503b0321a4f nbxmpp/proxy_connectors.py
--- a/nbxmpp/proxy_connectors.py        Sun Jul 28 22:35:47 2013 +0200
+++ b/nbxmpp/proxy_connectors.py        Tue Jul 30 22:23:36 2013 +0200
@@ -128,9 +128,9 @@
     def start_connecting(self):
         log.info('Proxy server contacted, performing authentification')
         if self.proxy_user and self.proxy_pass:
-            to_send = '\x05\x02\x00\x02'
+            to_send = b'\x05\x02\x00\x02'
         else:
-            to_send = '\x05\x01\x00'
+            to_send = b'\x05\x01\x00'
         self.onreceive(self._on_greeting_sent)
         self.send(to_send)
 
@@ -148,15 +148,15 @@
             return self._on_proxy_auth('\x01\x00')
         elif reply[1] == '\x02':
             to_send = '\x01' + chr(len(self.proxy_user)) + self.proxy_user +\
-                    chr(len(self.proxy_pass)) + self.proxy_pass
+                chr(len(self.proxy_pass)) + self.proxy_pass
             self.onreceive(self._on_proxy_auth)
             self.send(to_send)
         else:
             if reply[1] == '\xff':
                 log.error('Authentification to proxy impossible: no acceptable 
'
-                        'auth method')
+                    'auth method')
                 self.on_failure('Authentification to proxy impossible: no '
-                        'acceptable authentification method')
+                    'acceptable authentification method')
                 return
             log.error('Invalid proxy reply')
             self.on_failure('Invalid proxy reply')
@@ -179,18 +179,18 @@
             return
         log.info('Authentification successfull. Jabber server contacted.')
         # Request connection
-        req = "\x05\x01\x00"
+        req = b'\x05\x01\x00'
         # If the given destination address is an IP address, we'll
         # use the IPv4 address request even if remote resolving was specified.
         try:
             self.ipaddr = socket.inet_aton(self.xmpp_server[0])
-            req = req + "\x01" + self.ipaddr
+            req = req + b'\x01' + self.ipaddr
         except socket.error:
             # Well it's not an IP number,  so it's probably a DNS name.
 #                       if self.__proxy[3]==True:
             # Resolve remotely
             self.ipaddr = None
-            req = req + "\x03" + chr(len(self.xmpp_server[0])) + 
self.xmpp_server[0]
+            req = req + b'\x03' + (chr(len(self.xmpp_server[0])) + 
self.xmpp_server[0]).encode('utf-8')
 #                       else:
 #                               # Resolve locally
 #                               self.ipaddr = 
socket.inet_aton(socket.gethostbyname(self.xmpp_server[0]))
@@ -210,17 +210,17 @@
             log.error('Invalid proxy reply')
             self.on_failure('Invalid proxy reply')
             return
-        if reply[1] != "\x00":
+        if reply[1] != '\x00':
             # Connection failed
             if ord(reply[1])<9:
                 errors = ['general SOCKS server failure',
-                        'connection not allowed by ruleset',
-                        'Network unreachable',
-                        'Host unreachable',
-                        'Connection refused',
-                        'TTL expired',
-                        'Command not supported',
-                        'Address type not supported'
+                    'connection not allowed by ruleset',
+                    'Network unreachable',
+                    'Host unreachable',
+                    'Connection refused',
+                    'TTL expired',
+                    'Command not supported',
+                    'Address type not supported'
                 ]
                 txt = errors[ord(reply[1])-1]
             else:
@@ -229,9 +229,9 @@
             self.on_failure(txt)
             return
         # Get the bound address/port
-        elif reply[3] == "\x01":
+        elif reply[3] == '\x01':
             begin, end = 3, 7
-        elif reply[3] == "\x03":
+        elif reply[3] == '\x03':
             begin, end = 4, 4 + reply[4]
         else:
             log.error('Invalid proxy reply')
diff -r 381e96f81981 -r 3503b0321a4f nbxmpp/transports_nb.py
--- a/nbxmpp/transports_nb.py   Sun Jul 28 22:35:47 2013 +0200
+++ b/nbxmpp/transports_nb.py   Tue Jul 30 22:23:36 2013 +0200
@@ -497,7 +497,10 @@
         """
         NonBlockingTransport.send(self, raw_data, now)
 
-        r = self.encode_stanza(raw_data)
+        if isinstance(raw_data, str):
+            r = self.encode_stanza(raw_data)
+        else:
+            r = raw_data
 
         if now:
             self.sendqueue.insert(0, r)
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to