summaryrefslogtreecommitdiffstats
path: root/Lib/asynchat.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/asynchat.py')
-rw-r--r--Lib/asynchat.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/Lib/asynchat.py b/Lib/asynchat.py
index 9443656..0e2457f 100644
--- a/Lib/asynchat.py
+++ b/Lib/asynchat.py
@@ -46,6 +46,7 @@ method) up to the terminator, and then control will be returned to
you - by calling your self.found_terminator() method.
"""
+import sys
import socket
import asyncore
from collections import deque
@@ -91,6 +92,8 @@ class async_chat (asyncore.dispatcher):
self.handle_error()
return
+ if isinstance(data, str):
+ data = data.encode('ascii')
self.ac_in_buffer = self.ac_in_buffer + bytes(data)
# Continue to search for self.terminator in self.ac_in_buffer,
@@ -126,6 +129,8 @@ class async_chat (asyncore.dispatcher):
# 3) end of buffer does not match any prefix:
# collect data
terminator_len = len(terminator)
+ if isinstance(terminator, str):
+ terminator = terminator.encode('ascii')
index = self.ac_in_buffer.find(terminator)
if index != -1:
# we found the terminator
@@ -195,11 +200,15 @@ class async_chat (asyncore.dispatcher):
self.close()
return
elif isinstance(p, str) or isinstance(p, bytes):
+ if isinstance(p, str):
+ p = p.encode('ascii')
self.producer_fifo.pop()
- self.ac_out_buffer = self.ac_out_buffer + bytes(p)
+ self.ac_out_buffer = self.ac_out_buffer + p
return
data = p.more()
if data:
+ if isinstance(data, str):
+ data = data.encode('ascii')
self.ac_out_buffer = self.ac_out_buffer + bytes(data)
return
else: