os.conn.Serial: Don't use line_buffering in fdopen()

It's wrong to use line buffering in fdopen(..., ".b"), there's no
such thing as a line in binary data, also see

	https://bugs.python.org/issue32236

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2022-12-07 09:45:10 +01:00
commit 5b54b637fd

View file

@ -249,13 +249,13 @@ class Serial(Connection): # export
#self._fd = os.open(self._path, self._flags)
limit = asyncio.streams._DEFAULT_LIMIT
if mode == os.O_WRONLY or mode == os.O_RDWR:
self._wr_stream = os.fdopen(self._fd, mode='wb', buffering=1)
self._wr_stream = os.fdopen(self._fd, mode='wb')
#transp, proto = await self.pair.env.eloop.connect_write_pipe(Fifos.Protocol, self._wr_stream)
#self._stream_writer = asyncio.streams.StreamWriter(transp, proto, None, loop)
transp, proto = await loop.connect_write_pipe(lambda: asyncio.streams.FlowControlMixin(loop=loop), self._wr_stream)
self._stream_writer = asyncio.streams.StreamWriter(transp, proto, None, loop)
if mode == os.O_RDONLY or mode == os.O_RDWR:
self._rd_stream = os.fdopen(self._fd, mode='rb', buffering=1)
self._rd_stream = os.fdopen(self._fd, mode='rb')
#transp, proto = await self.pair.env.eloop.connect_read_pipe(Fifos.Protocol, self._rd_stream)
#self._stream_reader = asyncio.streams.StreamReader(transp, proto, None, loop)
self._stream_reader = asyncio.StreamReader(limit=limit, loop=loop)