mirror of
https://github.com/python/cpython.git
synced 2025-08-23 02:04:56 +00:00
#17443: Fix buffering in IMAP4_stream.
In Python2 Popen uses *FILE objects, which wind up buffering even though subprocess defaults to no buffering. In Python3, subprocess streams really are unbuffered by default, but the imaplib code assumes read is buffered. This patch uses the default buffer size from the io module to get buffered streams from Popen. Much debugging work and patch by Diane Trout. The imap protocol is too complicated to write a test for this simple change with our current level of test infrastructure.
This commit is contained in:
parent
ae4ef4d2ff
commit
fcb6d6a3b3
3 changed files with 7 additions and 0 deletions
|
@ -23,6 +23,7 @@ Public functions: Internaldate2tuple
|
|||
__version__ = "2.58"
|
||||
|
||||
import binascii, errno, random, re, socket, subprocess, sys, time, calendar
|
||||
from io import DEFAULT_BUFFER_SIZE
|
||||
|
||||
try:
|
||||
import ssl
|
||||
|
@ -1237,6 +1238,7 @@ class IMAP4_stream(IMAP4):
|
|||
self.sock = None
|
||||
self.file = None
|
||||
self.process = subprocess.Popen(self.command,
|
||||
bufsize=DEFAULT_BUFFER_SIZE,
|
||||
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||
shell=True, close_fds=True)
|
||||
self.writefile = self.process.stdin
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue