[tor-commits] [chutney/master] Python3: Various bytes/unicode fixes

nickm at torproject.org nickm at torproject.org
Mon Mar 11 00:33:44 UTC 2019


commit 620efe453c30f47c784f5df287d2aea74f6e8dc4
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Feb 28 13:09:25 2019 -0500

    Python3: Various bytes/unicode fixes
---
 lib/chutney/Traffic.py | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/lib/chutney/Traffic.py b/lib/chutney/Traffic.py
index 7b3e6d4..766766a 100644
--- a/lib/chutney/Traffic.py
+++ b/lib/chutney/Traffic.py
@@ -41,15 +41,17 @@ def socks_cmd(addr_port):
     """
     ver = 4  # Only SOCKSv4 for now.
     cmd = 1  # Stream connection.
-    user = '\x00'
+    user = b'\x00'
     dnsname = ''
     host, port = addr_port
     try:
         addr = socket.inet_aton(host)
     except socket.error:
-        addr = '\x00\x00\x00\x01'
+        addr = b'\x00\x00\x00\x01'
         dnsname = '%s\x00' % host
     debug("Socks 4a request to %s:%d" % (host, port))
+    if type(dnsname) != type(b""):
+        dnsname = dnsname.encode("ascii")
     return struct.pack('!BBH', ver, cmd, port) + addr + user + dnsname
 
 
@@ -133,7 +135,7 @@ class Sink(Peer):
 
     def __init__(self, tt, s):
         super(Sink, self).__init__(Peer.SINK, tt, s)
-        self.inbuf = ''
+        self.inbuf = b''
         self.repetitions = self.tt.repetitions
 
     def on_readable(self):
@@ -193,8 +195,8 @@ class Source(Peer):
         super(Source, self).__init__(Peer.SOURCE, tt)
         self.state = self.NOT_CONNECTED
         self.data = buf
-        self.outbuf = ''
-        self.inbuf = ''
+        self.outbuf = b''
+        self.inbuf = b''
         self.proxy = proxy
         self.repetitions = repetitions
         self._sent_no_bytes = 0
@@ -229,10 +231,10 @@ class Source(Peer):
                 return -1
             self.inbuf += inp
             if len(self.inbuf) == 8:
-                if ord(self.inbuf[0]) == 0 and ord(self.inbuf[1]) == 0x5a:
+                if self.inbuf[:2] == b'\x00\x5a':
                     debug("proxy handshake successful (fd=%d)" % self.fd())
                     self.state = self.CONNECTED
-                    self.inbuf = ''
+                    self.inbuf = b''
                     debug("successfully connected (fd=%d)" % self.fd())
                     # if we have no reps or no data, skip sending actual data
                     if self.want_to_write():





More information about the tor-commits mailing list