python/aqmp: add configurable read buffer limit
QMP can transmit some pretty big messages, and the default limit of 64KB isn't sufficient. Make sure that we can configure it. Reported-by: G S Niteesh Babu <niteesh.gs@gmail.com> Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 20210915162955.333025-11-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
774c64a58d
commit
2686ac1316
@ -189,6 +189,9 @@ class AsyncProtocol(Generic[T]):
|
||||
#: Logger object for debugging messages from this connection.
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Maximum allowable size of read buffer
|
||||
_limit = (64 * 1024)
|
||||
|
||||
# -------------------------
|
||||
# Section: Public interface
|
||||
# -------------------------
|
||||
@ -452,6 +455,7 @@ class AsyncProtocol(Generic[T]):
|
||||
port=address[1],
|
||||
ssl=ssl,
|
||||
backlog=1,
|
||||
limit=self._limit,
|
||||
)
|
||||
else:
|
||||
coro = asyncio.start_unix_server(
|
||||
@ -459,6 +463,7 @@ class AsyncProtocol(Generic[T]):
|
||||
path=address,
|
||||
ssl=ssl,
|
||||
backlog=1,
|
||||
limit=self._limit,
|
||||
)
|
||||
|
||||
server = await coro # Starts listening
|
||||
@ -482,9 +487,18 @@ class AsyncProtocol(Generic[T]):
|
||||
self.logger.debug("Connecting to %s ...", address)
|
||||
|
||||
if isinstance(address, tuple):
|
||||
connect = asyncio.open_connection(address[0], address[1], ssl=ssl)
|
||||
connect = asyncio.open_connection(
|
||||
address[0],
|
||||
address[1],
|
||||
ssl=ssl,
|
||||
limit=self._limit,
|
||||
)
|
||||
else:
|
||||
connect = asyncio.open_unix_connection(path=address, ssl=ssl)
|
||||
connect = asyncio.open_unix_connection(
|
||||
path=address,
|
||||
ssl=ssl,
|
||||
limit=self._limit,
|
||||
)
|
||||
self._reader, self._writer = await connect
|
||||
|
||||
self.logger.debug("Connected.")
|
||||
|
Loading…
Reference in New Issue
Block a user