diff options
author | Thomas Wouters <thomas@python.org> | 2007-08-31 00:20:14 (GMT) |
---|---|---|
committer | Thomas Wouters <thomas@python.org> | 2007-08-31 00:20:14 (GMT) |
commit | 74e68c751f148d6d41dd74d004ff19f05e244859 (patch) | |
tree | 83768a0add6224dfeb2741269b673eb2967002e7 /Lib/asynchat.py | |
parent | 828f04ac3f0dd3b68b4dbf42a79ebb846d1de568 (diff) | |
download | cpython-74e68c751f148d6d41dd74d004ff19f05e244859.zip cpython-74e68c751f148d6d41dd74d004ff19f05e244859.tar.gz cpython-74e68c751f148d6d41dd74d004ff19f05e244859.tar.bz2 |
Fix test_smtplib by munging asynchat some more.
Diffstat (limited to 'Lib/asynchat.py')
-rw-r--r-- | Lib/asynchat.py | 11 |
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: |