From fb27cf52a9a7b72ef8d3e3693623de43a477ebaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=BC=99?= Date: Wed, 5 Nov 2014 11:04:40 +0800 Subject: [PATCH] Fix str/byte related TypeError in Python 3.4 Traceback (most recent call last): File "/usr/bin/sslocal", line 9, in load_entry_point('shadowsocks==2.4', 'console_scripts', 'sslocal')() File "/usr/lib/python3.4/site-packages/shadowsocks/local.py", line 68, in main loop.run() File "/usr/lib/python3.4/site-packages/shadowsocks/eventloop.py", line 230, in run handler(events) File "/usr/lib/python3.4/site-packages/shadowsocks/tcprelay.py", line 630, in _handle_events handler.handle_event(sock, event) File "/usr/lib/python3.4/site-packages/shadowsocks/tcprelay.py", line 458, in handle_event self._on_local_read() File "/usr/lib/python3.4/site-packages/shadowsocks/tcprelay.py", line 377, in _on_local_read self._handle_stage_reply(data) File "/usr/lib/python3.4/site-packages/shadowsocks/tcprelay.py", line 212, in _handle_stage_reply s = remote_sock.sendto(data, MSG_FASTOPEN, self._chosen_server) TypeError: 'str' does not support the buffer interface --- shadowsocks/tcprelay.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocks/tcprelay.py b/shadowsocks/tcprelay.py index 4a30b42..6ccadbe 100644 --- a/shadowsocks/tcprelay.py +++ b/shadowsocks/tcprelay.py @@ -207,7 +207,7 @@ class TCPRelayHandler(object): self._create_remote_socket(self._chosen_server[0], self._chosen_server[1]) self._loop.add(remote_sock, eventloop.POLL_ERR) - data = ''.join(self._data_to_write_to_local) + data = b''.join(self._data_to_write_to_local) l = len(data) s = remote_sock.sendto(data, MSG_FASTOPEN, self._chosen_server) if s < l: